首页 > 解决方案 > Django模板如何对简单标签返回的结果应用过滤器

问题描述

我有一个以下 simple_tag。

@register.simple_tag
def Test(arg1,arg2)
   return arg1+arg2

并在模板中。

 <h6>{% Test val.arg1 val.arg2 %}</h6>

现在我想对来自测试的上述returned数据应用过滤器,simple_tag

例如,我想对naturaltime返回的数据应用过滤器,如何与简单的标签一起做。

<h6>{% Test val.arg1 val.arg2 | naturaltime %}</h6>

标签: djangodjango-modelsdjango-rest-frameworkdjango-templatesdjango-views

解决方案


对于简单标签as,您可以使用关键字将模板标签的结果存储在变量中,如有关简单标签的文档中所指定:

可以将标记结果存储在模板变量中 ,而不是直接输出。这是通过使用as 参数后跟变量名来完成的。这样做可以让您自己输出您认为合适的内容:

{% current_time "%Y-%m-%d %I:%M %p" as the_time %}
<p>The time is {{ the_time }}.</p>

因此,在这种情况下,我们可以使用以下方式渲染输出:

<h6>{% Test val.arg1 val.arg2 as result %}{{ result|naturaltime }}</h6>

推荐阅读