0

我正在使用它来输出,

{{ movie.img }}

我得到的输出应该是这样的,

u'<img src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/Dark_Knight.jpg/220px-Dark_Knight.jpg" alt="" height="327" width="220" >\nTheatrical release poster'

我如何只输出 html 图像部分?我不希望戏剧发行海报出现在输出中。

4

1 回答 1

1

由于您只是将其作为文本获取,因此您最好的解决方案是编写一个模板过滤器,该过滤器将去除不在<img>html 标记中的内容。

如果对象是 ImageField(或 FileField),则只能调用 url 属性,{{ movie.img.url }}

更新

好的,这是一个基本的,可能过于幼稚的模板过滤器供您使用。

from django import template
from django.template.defaultfilters import stringfilter
import re

register = template.Library()

@register.filter(is_safe=True)
@stringfilter
def get_img_tag(value):
    result = re.search("<.*?>", value)
    if result:
        return result.group()
    return value

采用:

{{ movie.img|get_img_tag|safe }}
于 2012-07-11T20:58:25.643 回答