Django TemplateSyntaxError无法解析余数

时间:2015-01-08 01:26:50

标签: django django-templates django-template-filters

为什么我不能在Django模板中键入它?

data|customTag:variable,forloop.parentloop.counter

我只想将三个或更多参数传递给过滤器

假装已经存在循环并且变量/过滤器已在其他地方定义

2 个答案:

答案 0 :(得分:1)

这是不可能的,因为django template filters根据定义只接受一个参数

  

自定义过滤器只是带有一个或两个的Python函数   参数:

     
      
  • 变量(输入)的值 - 不一定是字符串。

  •   
  • 在   参数的值 - 可以有一个默认值,也可以省略   共

  •   

建议使用here的解决方法可能适用于您的用例。

另一种可能的解决方案是将带有2个输入参数的标签拆分为两个带有单个标签的标签,并将它们链接到模板中。它取决于您在过滤器中的逻辑,但可以是一个选项。

答案 1 :(得分:1)

在您的示例中,customTag过滤器,而不是模板标记。

According to the docs,Django模板过滤器只接受输入(在您的情况下为data)和一个可选参数。您收到错误是因为您尝试传递多个参数,这是不可能的。

您可以改为编写custom template tag。模板中的语法为:

{% customTag data variable forloop.parentloop.counter %}