如何在模板中获取ImageField URL?

我的Django应用中有以下模型:

class Image(models.Model):

image = models.ImageField(

upload_to='images/',

height_field='height',

width_field='width'

)

credit = models.CharField(max_length=50, blank=True)

caption = models.TextField(blank=True)

article = models.ForeignKey(Article)

width = models.PositiveIntegerField(

blank = True, null = True,

editable = False,

default = 0

)

height = models.PositiveIntegerField(

blank = True, null = True,

editable = False,

default = 0

)

我已将MEDIA_ROOT设置为Apache网络根目录中的/ hmedia /目录,并将MEDIA_URL设置为’http://localhost/hmedia/'。这似乎奏效了-我已通过Django管理网站成功上传了几张图片,并且可以通过查看这些图片http://localhost/hmedia/images/[filename]。并且Django管理站点实际上向我显示了文件名,并提供了每个图像的实时URL的链接,并且这些链接有效。

我的问题是,我不知道如何在模板中获取这些图像的URL或文件名:

<ul>

{% for image in article.image_set.all %}

<li>Caption: "{{image.caption}}", Credit: "{{image.credit}}", URL: "{{image.url}}"</li>

{% endfor %}

</ul>

上面的模板产生以下输出:

<ul>

<li>Caption: "here's an image caption", Credit: "some photographer", URL: ""</li>

<li>Caption: "Another caption here", Credit: "Another photographer", URL: ""</li>

</ul>

换句话说,它可以正确输出每个图像的标题和字幕属性,但是对于{{image.url}}则不输出任何内容。

如何在模板中获取图像的URL?Django管理界面模板是如何做到的?(我已经扎根在管理模板目录中,但找不到我想要的东西。)

回答:

你需要{{ image.image.url }}&{{ image.image.path }},而{{ image }}-仅是一个Image对象

以上是 如何在模板中获取ImageField URL? 的全部内容, 来源链接: utcz.com/qa/425943.html

回到顶部