2016-02-07 41 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/的文件可用。