【问题标题】:How to apply a templatetags filter on a simple templatetags return如何在简单的模板标签返回上应用模板标签过滤器
【发布时间】: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


【解决方案1】:

也许您想改用assignment-tag

那么你可以这样做:

{% myTag arg1 arg2 as answer %}
{{ answer|truncatewords:2 }}

【讨论】:

  • 不幸的是,在 django 1.3 上运行
猜你喜欢
  • 2020-05-02
  • 2012-08-28
  • 1970-01-01
  • 2013-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-16
  • 2014-03-20
相关资源
最近更新 更多