2011-06-08 134 views
25

对于我这样工作的:如何在Django模板变量上应用多个过滤器?

{{game.description |安全}}

但这种失败:

{{ game.description|safe|slice:"65" }} 

有没有上应用两个或多个过滤器的方式Django模板中的变量?

+1

这应该活像ķ。例如,'{{var | safe | escape}}'适用于文档。你确切的错误是什么?为什么你的切片'65'? – 2011-06-08 15:37:48

+0

当我尝试第二个时没有出现。它是65,因为如果游戏描述对于容器div太长。 – Tommy 2011-06-08 15:51:05

+1

只是切换过滤器的顺序。我在下面的答案更详细。 – 2011-06-08 18:43:28

回答

0

这可能工作:

{% filter force_escape|lower %} 
    This text will be HTML-escaped, and will appear in all lowercase. 
{% endfilter %} 

参考:Built-in tag reference, filter

+0

尽管如此,他的榜样应该如此。 – 2011-06-08 15:39:06

6

是描述一个数组还是一个字符串?

如果它是一个字符串,你可能想尝试truncatewords(或truncatewords_html如果描述可以包含HTML),

{{ game.description|safe|truncatewords:65 }} 

参考:Built-in filter reference, truncatewords

(我是新来的Django,所以我道歉,如果片适用于字符串。)

26

虽然这是相当近时OP张贴的问题,但对于可能需要的信息的其他人来说,这似乎工作很适合我:

可以重写

{{ game.description|safe|slice:"65" }} 

{% with description=game.description|safe %} 
{{description|slice:"65"}} 
{% endwith %} 
相关问题