我知道如何在Django的模板标签过滤器中传递两个参数,但有点混淆如何使用3个参数。
我的模板标签 -
@register.filter("status_of_booking")
def status_of_booking(status,create_date,from_time):
print create_date
print status
return 'hola'
我正在传递这样的三个参数,它显示错误: -
{{ item.status|status_of_booking:item.classSession.date,item.id }}
并显示错误:
status_of_booking requires 3 arguments, 2 provided
答案 0 :(得分:3)
Django模板过滤器采用零个或一个参数。多个参数是不可能的。
在您的情况下,您可以使用item
作为第一个参数,而不是status
:
@register.filter("status_of_booking")
def status_of_booking(item):
print item.create_date
print item.status
return 'hola'
然后在你的模板中:
{{ item|status_of_booking }}
如果您确实需要多个参数,则必须将status_of_booking
从过滤器更改为模板标记,
@register.simple_tag
def status_of_booking(status, create_date, from_time):
print create_date
print status
return 'hola'
并将模板更改为:
{% status_of_booking item.status item.classSession.date item.id %}