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

Stu*_*Stu 2 django django-templates django-models

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

我的模特

class News(models.Model):
title-----------
image = models.ImageField(upload_to='images')
body------------
Run Code Online (Sandbox Code Playgroud)

模板标签编码

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)
Run Code Online (Sandbox Code Playgroud)

模板编码

{% 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 %}
Run Code Online (Sandbox Code Playgroud)

此代码在列表中输出所有变量信息,例如标题和正文,但它不显示关联的图像.我在这段代码上尝试了很多变化而没有成功.这很奇怪,因为当以下列方式从图像文件夹中调用图像时

<img src="{{ MEDIA_URL }}images/star.jpg" />
Run Code Online (Sandbox Code Playgroud)

一切正常.当调用模型图像时会出现问题.任何帮助解决这个问题都非常感谢

Dan*_*man 5

这与自定义模板标记无关.如果您查看了渲染页面的源代码,您会看到{{ object.image }}它不会输出图像的URL.你需要使用{{ object.image.url }}