【发布时间】:2016-12-30 22:41:49
【问题描述】:
已修复 这是我的解决方案,在主程序 urls.py 中我必须添加这些行。
从 django.conf 导入设置 从 django.conf.urls.static 导入静态
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我有一个名为 Item 的模型,里面有一个图像字段。我在数据库中添加了一个带有图像的新项目,并尝试将其加载到我的索引模板中。但是,当我查看控制台时,我没有得到图像(“WEBSITENAME/site_media/items/image.jpg 404(未找到)”)
我认为问题出在 settings.py 文件中,但我无法弄清楚我到底做错了什么。
index.html 模板
{% load static %}
<div class="item" style="background-image: url('{{ item.img.url }}')">`
Model.py
class Item(models.Model):
name = models.CharField(max_length=200)
img = models.ImageField(upload_to='items', default='', blank=True, null=True)
def __str__(self):
return "%s" % (self.name)
Views.py
def index(request):
latestItems = Item.objects.all().order_by('-id')[:3][::-1]
return render(request, 'webshop/index.html', {'latestItems' :latestItems})
settings.py
SITE_ROOT = os.path.dirname(os.path.realpath(__file__))
MEDIA_ROOT = os.path.join(SITE_ROOT, 'site_media/')
MEDIA_URL = 'site_media/'
【问题讨论】:
-
我设法修复了它。我必须在主 urls.py 文件中添加这些行: from django.conf import settings from django.conf.urls.static import static urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
-
请记住,为了安全起见,您可以添加:
if settings.DEBUG: urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
标签: python django django-models django-templates django-views