[英]Django - Setting variable inside a template (or calling IF statement where argument is a function)
我有一个(模板标签-simple_tag)函数,该函数接受1个参数(和上下文)并返回一个字符串。 因此,调用{% myfunction var1 %}
将返回一个字符串(取决于var1)。
现在,我想在if语句中使用它,例如: {% if myfunction var1 == 'some string' %}
。 显然这是行不通的,因此我尝试首先将返回的字符串保存到变量中,然后在if语句中使用它。
但是{% myfunction var1 as var2 %}
不起作用,因为它将“ as var2”视为第二个函数参数,并且出现“接收到太多的位置参数”错误。
我也尝试过“ with”语句,但是它也不起作用...
那么如何将函数返回值保存到变量中,或者如何在if语句中直接使用函数呢?
您可以使用django.template.Library.assignment_tag()
注册模板标签,然后在模板中使用{% myfunction var1 as var2 %}
。 https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#assignment-tags
您可以将其设为过滤器而不是标签。 然后可以在if语句中使用它:
{% if var1|myfunction == 'some string' %}
以及独立的:
{{ var1|myfunction }}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.