Django模板-将字符串拆分为数组

我有一个模型字段,它存储一个URL列表(是的,我知道,这是错误的方式)url1\nurl2\nurl3<...>。我需要将字段拆分为模板中的数组,因此创建了自定义过滤器:

@register.filter(name='split')

def split(value, arg):

return value.split(arg)

我用这种方式:

{% with game.screenshots|split:"\n" as screens %}

{% for screen in screens %}

{{ screen }}<br>

{% endfor %}

{% endwith %}

但是正如我所看到的,split并不能正常工作:我得到类似的输出url1 url2 url3(如果查看源代码,则带有换行符)。为什么?

回答:

Django有意排除了许多类型的templatetag,以阻止你对模板进行过多处理。(不幸的是,人们通常只是自己添加这些类型的模板标签。)

这是应该在模型中而不是模板中的完美示例。

class Game(models.Model):

...

def screenshots_as_list(self):

return self.screenshots.split('\n')

然后,在模板中,你只需执行以下操作:

{% for screen in game.screenshots_as_list %}

{{ screen }}<br>

{% endfor %}

更清晰,更容易使用。

以上是 Django模板-将字符串拆分为数组 的全部内容, 来源链接: utcz.com/qa/433803.html

回到顶部