2016-02-07 44 views
4

这里是我的项目结构:Django的 - 为什么图片不担任

enter image description here

我要上传图片(通过管理界面)在模板中加载它之前。

我发现差不多probleme很多帖子,我跟在答案中描述的相同步骤:

我的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) 

尽管画面有:

enter image description here

我在做什么错?在此先感谢

编辑 在情况下,它可以帮助:

  • 我使用Django 1.8
+0

尝试使用:src =“{{img.pic}}” –

+0

@TonyKyriakidis这将无法正常工作 – farhawa

+0

DEBUG = True?不处于调试模式时,static()是不可操作的。注意:'default = ...'看起来对我来说不对,上传的文件路径相对于媒体根存储(以便以后可以移动它),所以绝对路径不会削减它。 – dhke

回答

4

确保您已经添加了此行到您的网址配置。

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

如果你有,例如,

url(r'^blog/', include('blog.urls')), 

,并添加​​3210那里,那么Django的将添加一个URL模式来服务的媒体文件在/blog/^media/。由于^,这甚至不会使/blog/media/的文件可用。