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