如何在Django模板变量上应用多个过滤器?
问题描述:
对于我这样工作的:如何在Django模板变量上应用多个过滤器?
{{game.description |安全}}
但这种失败:
{{ game.description|safe|slice:"65" }}
有没有上应用两个或多个过滤器的方式Django模板中的变量?
答
这可能工作:
{% filter force_escape|lower %}
This text will be HTML-escaped, and will appear in all lowercase.
{% endfilter %}
+0
尽管如此,他的榜样应该如此。 – 2011-06-08 15:39:06
答
是描述一个数组还是一个字符串?
如果它是一个字符串,你可能想尝试truncatewords
(或truncatewords_html
如果描述可以包含HTML),
{{ game.description|safe|truncatewords:65 }}
参考:Built-in filter reference, truncatewords。
(我是新来的Django,所以我道歉,如果片适用于字符串。)
答
虽然这是相当近时OP张贴的问题,但对于可能需要的信息的其他人来说,这似乎工作很适合我:
可以重写
{{ game.description|safe|slice:"65" }}
为
{% with description=game.description|safe %}
{{description|slice:"65"}}
{% endwith %}
这应该活像ķ。例如,'{{var | safe | escape}}'适用于文档。你确切的错误是什么?为什么你的切片'65'? – 2011-06-08 15:37:48
当我尝试第二个时没有出现。它是65,因为如果游戏描述对于容器div太长。 – Tommy 2011-06-08 15:51:05
只是切换过滤器的顺序。我在下面的答案更详细。 – 2011-06-08 18:43:28