Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在模板中使用多个参数调用方法_Python_Django - Fatal编程技术网

Python 在模板中使用多个参数调用方法

Python 在模板中使用多个参数调用方法,python,django,Python,Django,如何调用一个方法、向其传递多个参数并在html模板中呈现结果?我找不到一个适用于所有情况的简单解决方案。我知道@register.filter和@register.simple_tag但是总是会抛出错误。如果这不是一件事,那就是另一件事。例如,simple_标记在渲染时有效,但在调用if时抛出错误 因此,如何通过以下方式从html模板调用方法: {{method1(a, b)}} {% if method1(a, b) == some_value %} {{method1(a, b)}}

如何调用一个方法、向其传递多个参数并在html模板中呈现结果?我找不到一个适用于所有情况的简单解决方案。我知道
@register.filter
@register.simple_tag
但是总是会抛出错误。如果这不是一件事,那就是另一件事。例如,simple_标记在渲染时有效,但在调用
if
时抛出错误

因此,如何通过以下方式从html模板调用方法:

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

注意,我不需要像“你做错了什么,你应该改变你的架构”这样的建议,因为这里不是这样。我只是想用一种简单的方法来做我想做的事。例如,在Rails中,我可以非常轻松地完成这项工作

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

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

{% if method_value == some_value %}  {{method_value}} {%endif%}
然后在模板中,您可以调用此模板标记并将其值分配给变量
方法\u值

{% method1 a b as method_value %}
然后在模板中使用此变量

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

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