这是我的项目结构:
我需要在将图片加载到模板中之前上传图片(通过管理界面)。
我发现了许多关于同一问题的帖子,我按照答案中描述的相同步骤进行了操作:
我的settings.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)
尽管如此:
我做错了什么?提前致谢
修改 如果它可以帮助:
答案 0 :(得分:4)
确保已将此行添加到 root 网址配置。
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
例如,如果你有
url(r'^blog/', include('blog.urls')),
然后在那里添加static()
,然后Django将添加一个url模式来提供/blog/^media/
的媒体文件。由于/blog/media/
。
^
处可用