【发布时间】:2016-02-07 19:23:57
【问题描述】:
这是我的项目结构:
在将图片加载到模板之前,我需要上传一张图片(通过管理界面)。
我发现很多关于相同问题的帖子,我按照答案中描述的相同步骤进行操作:
我的设置.py:
DEBUG = True
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
我的 urls.py:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我的models.py:
class Image_blog(models.Model):
pic = models.ImageField(upload_to = 'blog')
entry = models.ForeignKey(Entry,related_name='images')
...
最后,在模板中:
<div class="col-md-5">
<a href="blog-post.html">
{% for img in entry.images.all %}
<img class="img-responsive img-hover" src="{{ img.pic.url }}" alt="">
{% endfor %}
</a>
</div>
我得到这个错误的问题:
GET http://localhost:8000/media/blog/django.png 404 (NOT FOUND)
尽管有图片:
我做错了什么?提前致谢
编辑 如果有帮助:
- 我使用的是 django 1.8
【问题讨论】:
-
尝试使用:src="{{ img.pic }}"
-
@TonyKyriakidis 那行不通
-
是
DEBUG = True?static()在不处于调试模式时是无操作的。旁注:default=...在我看来是错误的,上传的文件路径是相对于媒体根目录存储的(以便您以后可以移动它),所以绝对路径不会削减它。 -
@dhke,
DEBUG=True和default=在这里没用,因为图片上传了。 -
确保您将
static()添加到根 urls.py,而不是另一个。
标签: python django static media