Django模板如何对简单标签返回的结果应用过滤器

Arb*_*ain 2 django django-templates django-models django-views django-rest-framework

我有一个以下 simple_tag。

@register.simple_tag
def Test(arg1,arg2)
   return arg1+arg2
Run Code Online (Sandbox Code Playgroud)

并在模板中。

 <h6>{% Test val.arg1 val.arg2 %}</h6>
Run Code Online (Sandbox Code Playgroud)

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

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

<h6>{% Test val.arg1 val.arg2 | naturaltime %}</h6>
Run Code Online (Sandbox Code Playgroud)

Wil*_*sem 5

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

\n\n
\n

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

\n\n
{% current_time "%Y-%m-%d %I:%M %p" as the_time %}\n<p>The time is {{ the_time }}.</p>\n
Run Code Online (Sandbox Code Playgroud)\n
\n\n

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

\n\n
<h6>{% Test val.arg1 val.arg2 as result %}{{ result|naturaltime }}</h6>
Run Code Online (Sandbox Code Playgroud)\n