2016-02-19 43 views
1

我有一些照片上傳但我無法看到temeplates的Django 1.9:無法看到上傳的照片

我的模板

{% extends 'base.html' %} 
{% load staticfiles %} 

{% block content %} 
    <div class="row "> 
    <div class="col-md-8"> 
     <h1>{{ object.title }}</h1> 
      {% if object.productimage_set.count > 0 %} 
     <div> 
      {% for img in object.productimage_set.all %} 
      {{ img.image.file }} 
      {{ img.image.url }} 
     <img class='img-responsive' src='{{ img.image.url }}' /> 
     </div> 
     {% endfor %} 
     </div> 
     {% endif %} 
    <div class="lead">{{ object.description }}</div> 
    </div> 
    </div> 

我的模型照片

class Product(models.Model): 
    title = models.CharField(max_length=120) 
    description = models.TextField(blank=True, null=True) 
    price = models.DecimalField(decimal_places=2, max_digits=20) 
    active = models.BooleanField(default=True) 

def __unicode__(self): # def __str__(self): 
    return self.title 

class ProductImage(models.Model): 
    product = models.ForeignKey(Product) 
    image = models.ImageField(upload_to='product/') 

設置媒體

STATIC_URL = '/static/' 
    STATICFILES_DIRS = [ 
     os.path.join(BASE_DIR, "static", "my_static"), 
    ] 
    STATIC_ROOT = os.path.join(BASE_DIR, "static", "static_root") 
    STATIC_URL = '/media/media_root/' 
    MEDIA_ROOT = os.path.join(BASE_DIR, "static", "media_root") 

我的網址

urlpatterns = [ 
url(r'^contact/', views.contact, name='contact'), 
url(r'^$', views.ProductViewList.as_view(), name='ProductViewList'), 
url(r'^(?P<pk>\d+)/$', views.ProductDetailView.as_view(), name='Product_Detail'),] 

我的文件夾結構

enter image description here

在模板{{img.image.url}}給出 - >產品/ mp3.jpg。而我依然無法看到圖像

控制檯顯示的圖像從http://127.0.0.1:8080/product/1/product/mp3.jpg加載我想有一些概率與網址,以便收集圖像,但不知道

任何幫助非常感謝..提前

回答

2

你應該如果沒有,則將MEDIA_URL添加到settings.py。

就你而言,MEDIA_URL應該是media_root。我的圖片鏈接都有/media/....jpg。

此外,你可以指定網址:

from django.conf import settings 

if settings.DEBUG: 
    # static files (images, css, javascript, etc.) 
    urlpatterns += patterns('', 
     (r'^media/(?P<path>.*)$', 'django.views.static.serve', { 
     'document_root': settings.MEDIA_ROOT})) 
+0

感謝您的回答..............乾杯 – spidy

2

..Thanks下面是Django的一些這方面的資料:https://docs.djangoproject.com/en/1.9/howto/static-files/#serving-files-uploaded-by-a-user-during-development

我寧願讓我的媒體文件從我的靜態文件分開,所以在開發過程中我居然店礦項目的根。以下片段使用項目根目錄作爲媒體位置,但如果您希望保留當前位置,則可以通過將其更改爲static/media_root來輕鬆調整此項。

首先確保你已經在你的settings.py文件中定義的媒體根:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 

然後嘗試添加以下到項目的urls.py文件:

from django.conf import settings 


if settings.DEBUG: 
    urlpatterns += patterns('', (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': True})) 
+0

謝謝您的回答..............歡呼 – spidy

+0

非常歡迎! –