2016-03-30 4 views
-1

Я пытаюсь выяснить, как решить эту проблему с изображениями, но я не могу найти ответ. Я пытаюсь отобразить «ImageField» моих моделей в шаблоне.Показать изображение из моделей в Django

Я загрузил изображение через сайт администратора, и когда я хочу его отобразить, я не могу правильно отобразить изображение (оно появляется значок, но не может видеть изображение).

Модель, которую я пытаюсь показать изображение из имеет это утверждение для ImageField:

figure = models.ImageField(upload_to='static/img/list-icons', 
           blank=True, 
           null=True, 
           verbose_name=_("Figure")) 

Будучи «upload_to» путь путь к статическому каталог файлов, где изображения сохраняются. Я пытаюсь получить изображение в шаблоне с этим кодом (я попробовал несколько комбинаций):

{% for quiz in quiz_list %} 

      <tr> 
       <td>{{ quiz.title }}</td> 
       <td>{{ quiz.category }}</td> 
       <td><img src="{{ quiz.figure.url }}" /></td> 
       <td>{{ quiz.single_attempt }}</td> 
      </tr> 

     {% endfor %} 

модель является викторина (ListView), и я ничего не изменил от views.py (только что добавили недавно поле изображений). Было бы необходимо добавить некоторые заявления? Какого рода?

Я добавил лишь aproximation из 'MEDIA_ROOT' в settings.py с пути моего статического каталога изображений (такой же, как upload_to в модели), а также я не знаю, как определить или, если это необходимо, чтобы определить 'MEDIA_URL'.

Как я могу отображать изображения непосредственно из модели (я также пробовал {{quiz.figure}}, но только что получил путь 'upload_to'), выбирая их из статического каталога, где они расположены? Помощь будет высоко оценена, спасибо. Я отвечу, чтобы добавить дополнительную дополнительную информацию.

EDIT 1: захват того, что она выводит прямо сейчас только это:

Capture of what it outputs

Мой файл urls.py заканчивается так:

+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 

я думаю, что это необходимо чтобы CSS работал правильно, как сейчас.

ответ

1

Неправильное отображение изображения.

Вы должны заменить

<td><img src="quiz.figure.url" /></td> 

с

<td><img src="{{ quiz.figure.url }}" /></td> 

UPDATE: Похоже, что у вас нет средств массовой информации записи URL-адреса в вашем проекте urls.py. В URLs проекта, сделайте следующее:

from django.conf import settings 
from django.conf.urls.static import static 
... 
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

Кроме того, убедитесь, что вы определили соответствующие настройки в settings.py

# Media files 
MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 
MEDIA_URL = '/media/' 
+0

Спасибо, просто установил его, но выход все та же. .. Должен ли я что-то делать с помощью «MEDIA_ROOT» или «MEDIA_URL» в settings.py? – Jim

+0

Какой выход? у вас есть медиа-ссылки в ваших URL-адресах? – v1k45

+0

Я отредактировал первое сообщение, что вы подразумеваете под медиа-ссылками?У меня только обычные шаблоны настроек url, ничего не изменилось, когда я добавил изображение в модели. Должен ли он иметь путь или что-то в urls.py? Спасибо за ответы – Jim

 Смежные вопросы

  • Нет связанных вопросов^_^