2016-02-19 3 views
1

у меня есть некоторые фото загружено но я не смог увидеть фотографии в temeplatesДжанго 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") 

Мои URLs

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 Я предполагаю, что есть некоторые проб с URL, чтобы собрать изображение, но не уверен, что

Любая помощь очень ценится .. ..Thanks заранее

ответ

2

Вы должны добавьте MEDIA_URL к вашим settings.py, если вы этого не сделали.

В вашем случае MEDIA_URL должен быть media_root. Мои ссылки на изображение у всех есть /media/....jpg.

Кроме того, можно указать URL-адреса:

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

Вот некоторые документы из Джанго на этом: 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

Вы очень приветствуются! –