问题是应用程序试图从链接中提取图像
/ref_pages/media/fbRostovay.jpg1.JPG
但它是可用的
/media/fbRostovay.jpg1.JPG
该应用程序自动添加
/ref_pages
如果我将 MEDIA_URL = '/media/' 中的路径更改为 MEDIA_URL = '/ref_pages/media/' 那么它可以工作,但是另一个应用程序无法获取图片
在另一个应用程序中,一切正常,我不明白我在哪里搞砸了,请告诉我,因为它可能是什么
模型.py
from __future__ import unicode_literals
from django.db import models
class Referer(models.Model):
class Meta():
db_table = "ref_pages_referer"
ref_link = models.CharField(max_length=200)
describe_link = models.TextField()
free_test = models.BooleanField(default=True)
personal_proxy = models.BooleanField(default=True)
change_proxy = models.BooleanField(default=True)
public = models.BooleanField(default=True)
img = models.ImageField(default='img/q12.jpg')
def __str__(self):
return self.describe_link
视图.py
from django.core.paginator import Paginator
from django.shortcuts import get_object_or_404, render
from .models import Referer
def category(request):
return render(request, 'ref_pages/category.html')
def support(request):
contact_list = Referer.objects.all()
paginator = Paginator(contact_list, 2) # Show 25 contacts per page
page = request.GET.get('page')
contacts = paginator.get_page(page)
return render(request, 'ref_pages/index.html', {'contacts': contacts})
网址.py
from django.urls import path
from . import views
app_name = 'ref_pages'
urlpatterns = [
path('category', views.category, name='category'),
path('', views.support, name='index'),
]
设置.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'poll/static') # добавил для отображения новой админки
STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),)
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
尝试
urls.py在您的项目文件夹中添加以下内容:Django 本身不管理生产中的媒体文件。因此,这样做如下:媒体文件夹是此类文件的根文件夹,然后在其中有一个层次结构。
因此,一切都在地址处工作
/media/fbRostovay.jpg1.JPG。这就是它应该保持的方式。您应该重做应用程序逻辑,以便它不会添加到请求的路径
/ref_pages为什么在路径中添加这个词?也许您正在向链接传递一条额外的路径,而没有
/前导路径。也就是说,如果您在当前页面上打开一个链接media/picture.jpg,则路径将打开current_path/media/picture.jpg,如果您打开它/media/picture.jpg(以斜线开头),则路径将保持不变。也许问题出在其他地方,您需要更多模板代码。
此外
只是将所有内容保存在媒体文件夹中并不好。如果有很多文件,一切都会挂起。你需要把它分散在文件夹中,所以在你的
img = models.ImageField(default='img/q12.jpg')添加参数
upload_to