如何在Django模板变量上应用多个过滤器?

44 投票
4 回答
31997 浏览
提问于 2025-04-16 19:10

对我来说,这个方法有效:

{{ game.description|safe }}

但是这个方法不行:

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

在Django模板中,有没有办法对一个变量应用两个或更多的过滤器?

4 个回答

3

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

改成

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

你缺少了冒号

11

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

如果它是一个字符串的话,你可以试试 truncatewords(如果描述里可能有HTML内容,可以用 truncatewords_html),

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

参考资料:内置过滤器参考,truncatewords

(我刚接触Django,如果切片在字符串上也能用的话,抱歉哦。)

46

虽然提问者发布这个问题的时间已经过去很久,但对于其他可能需要这些信息的人来说,这对我来说似乎很有效:

你可以把

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

改写成

{% with description=game.description|safe %}
{{description|slice:"65"}}
{% endwith %}

撰写回答