Как отображать объекты изображения в шаблоне Django, используя пользовательский тег шаблона? (кодирование включено) - PullRequest
2 голосов
/ 20 октября 2010

У меня есть следующий код, который не отображает изображения объектов. Но нормально показывает нормальные изображения.

Моя модель

class News(models.Model):
title-----------
image = models.ImageField(upload_to='images')
body------------

Шаблон тега кодирования

from django import template
register = template.Library()
from ----.models import ---

def funct(num):
myobjects = News.objects.all()[:num]
return {'objects': myobjects}
register.inclusion_tag('news/template.html')(funct)

шаблонное кодирование

{% for object in objects %}
<li>{{ object.title }}</li>
<li><img src="{{ MEDIA_URL }}images/{{ object.image }}" alt="image" /></li>
<li>{{ object.body }}</p></li>
{% endfor %}

Этот код выводит всю переменную информацию, такую ​​как заголовок и тело, в списке, но не отображает связанное изображение. Я пробовал многочисленные варианты этого кода безуспешно. Это странно, потому что когда изображение вызывается из папки изображений следующим образом

<img src="{{ MEDIA_URL }}images/star.jpg" />

Все отлично работает. Проблемы возникают, когда вызывается образ модели. Любая помощь в устранении этой проблемы очень ценится

1 Ответ

5 голосов
/ 20 октября 2010

Это не имеет ничего общего с пользовательским тегом шаблона.Если вы посмотрите на источник отображаемой страницы, вы увидите, что {{ object.image }} не выводит URL для изображения.Вам нужно использовать {{ object.image.url }}

...