Django模板标签使用多个参数过滤
@register.filter
def customTag(value, first, second):
...
return result
模板
{{ valor|customTag:first|customTag:second }}
错误
customTag需要3个参数,提供了2个
答案 0 :(得分:1)
您不能将多个参数传递给过滤器(reference)。相反,您可以这样做:
@register.filter
def customTag(value, args):
first, second = args.split(',')
...
return value
{{ valor|customTag:"first,second"}} // pass comma separated arguments in string
答案 1 :(得分:1)
我也有这个疑问。 在Django模板中使用{%with as%}获得了很好的结果,但是我需要创建两个过滤器模板标签:
模板标签:
@register.filter
def customTag(value, first):
...
return result1
@register.filter
def customTag2(first, second):
...
return result2
模板html:
{% with value|custom_tag:first as r1%}
{% with r1|custom_tag2:second as r2 %}
use your r2 value: {{ r2 }}
{% endwith %}
{% endwith %}
答案 2 :(得分:0)
我认为仅传递整个customTag
而不是参数就可以解决问题。也许还有其他可能的解决方案。
@register.filter("filter_of_custom_tag")
def customTag(custom_tag_instance):
...
return result
在您的模板中
{{ customTag|filter_of_custom_tag}}