0

有没有办法为模板标签提供两个以上的参数?

我可以:

val1|my_function:val2

但是 val3 去哪儿了?

我试过

val1|my_function:val2,val3

编辑:val1、val2、val3 是动态的,这意味着我可以像这样访问它们 {{val2}}

4

3 回答 3

1

模板标签只接受一个参数。

有几种方法可以解决这个问题,但我会考虑是否值得,或者你是否可以改变你的逻辑。

参数必须是数字或字符串。

所以这不起作用

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'
于 2013-01-30T14:30:06.100 回答
0

那是一个过滤器,一个过滤器只能接受一个或两个参数。编写自定义模板过滤器。如果您想要一个可以接受多个参数的标签,请查看编写自定义模板标签

于 2013-01-30T14:21:27.893 回答
0

对于字符串,您可以执行以下操作:

val1|my_function:"val2,val3"

然后拆分:

@register.filter()
def my_funtion(val1, args):
    args = [x.strip() for x in args.split(',')]
    #do something
    return value
于 2013-01-30T14:30:19.733 回答