在模板中调用具有多个参数的方法

时间:2015-07-10 04:29:00

标签: python django

如何调用方法,将多个参数传递给它并在html模板中呈现结果?我无法找到适用于所有情况的简单解决方案。我了解@register.filter@register.simple_tag,但总是会抛出错误。如果不是,那就是另一回事。例如,simple_tag在我渲染时起作用,但在我调用if时会抛出错误。

那么如何通过以下方式从html模板调用方法:

{{method1(a, b)}}  
{% if method1(a, b) == some_value %}  {{method1(a, b)}} {%endif%}

注意我不需要像#34;你做错了什么的建议,你应该改变你的架构"因为这不是这里的情况。我只是一个简单的方法来做我想要的。例如,在Rails中,我可以非常非常轻松地完成它。

1 个答案:

答案 0 :(得分:0)

您可以使用分配标记将从模板标记接收的值分配到变量中,然后可以在模板中的任何位置使用该变量。

@register.assignment_tag
def method1(a,b):
    ...

然后,在您的模板中,您可以调用此模板标记并将其值分配给变量method_value

{% method1 a b as method_value %}

然后在模板中使用此变量。

{{method_value}}

{% if method_value == some_value %}  {{method_value}} {%endif%}