如何使用自定义模板标记在Django模板中显示图像对象? (包括编码)

时间:2010-10-20 15:24:31

标签: django django-models django-templates

我有以下代码无法显示对象图像。但显示正常的图像很好。

我的模特

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 个答案:

答案 0 :(得分:5)

这与自定义模板标记无关。如果查看呈现页面的源,您会看到{{ object.image }}未输出图像的URL。您需要使用{{ object.image.url }}