【发布时间】:2014-10-20 11:48:43
【问题描述】:
在我的模板中,我使用了一个名为 myTag 的自定义 simple_tag 并采用两个参数:
{% myTag arg1 arg2 %}
它返回一个字符串。
我想在返回时使用 truncatewords 内置模板标签过滤器,但我找不到正确的语法...
总而言之,我想要类似的东西:
<h1>{% myTag arg1 arg2 %}|truncatewords:2</h1>
【问题讨论】:
-
您必须将过滤器应用于模板标签的输出。
-
您的意思是,在模板标签本身中?有没有办法在模板中的 return 上应用它?
-
不,因为您必须评估过滤器:
{% {% myTag arg1 arg2 %}|truncatewords:2 %}这不起作用。 -
模板过滤器只是函数。您可以在 Python 代码中的任何位置调用它们。由于您正在编写自定义标签,您反对将过滤器添加到标签的输出中吗?它无限容易,也可以重复使用。此外,您可以向您的标签传递一个额外的参数,该参数可以有条件地应用截断,甚至截断多少个单词。
-
好的,谢谢你的解释!
标签: django filter templatetags