2015-07-10 44 views
0

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

所以,我怎么能叫从HTML模板在以下方面的方法:

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

注意我并不需要咨询类似“你做错事,你应该改变你的架构”,因为这里不是这种情况。我只是一个简单的方法来做我想做的事情。例如,在Rails中,我可以非常轻松地做到这一点。

回答

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%} 
相关问题