我知道如何在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
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 %}