有没有办法为模板标签提供两个以上的参数?
我可以:
val1|my_function:val2
但是 val3 去哪儿了?
我试过
val1|my_function:val2,val3
编辑:val1、val2、val3 是动态的,这意味着我可以像这样访问它们 {{val2}}
有没有办法为模板标签提供两个以上的参数?
我可以:
val1|my_function:val2
但是 val3 去哪儿了?
我试过
val1|my_function:val2,val3
编辑:val1、val2、val3 是动态的,这意味着我可以像这样访问它们 {{val2}}
模板标签只接受一个参数。
有几种方法可以解决这个问题,但我会考虑是否值得,或者你是否可以改变你的逻辑。
参数必须是数字或字符串。
所以这不起作用:
val1|func:['a','b']
val1[func:{'a':'b'}
val1|func:('a','b')
这将起作用:
val1|func:10
val1|func:10.2
val1|func:"10"
您可以做的是发送以结构化方式格式化的字符串:
val1|func:"['a','b']"
然后您可以创建解析它所需的数据类型,但这将是一个非常丑陋的解决方案。
一个更干净的解决方案是使用多个标签:
val1|func:'a'|func:'b'
那是一个过滤器,一个过滤器只能接受一个或两个参数。编写自定义模板过滤器。如果您想要一个可以接受多个参数的标签,请查看编写自定义模板标签。
对于字符串,您可以执行以下操作:
val1|my_function:"val2,val3"
然后拆分:
@register.filter()
def my_funtion(val1, args):
args = [x.strip() for x in args.split(',')]
#do something
return value