【发布时间】:2014-03-04 08:04:43
【问题描述】:
我需要这样做:
{% for team in association|get_teams_by_category_gender:category,gender %}
但是 django 不允许 2 个参数...我该怎么做?
基本上,我需要过滤器返回一个对象列表,以便循环遍历它,然后按类别和性别过滤团队。
谢谢, 阿拉
【问题讨论】:
标签: django templates django-templates
我需要这样做:
{% for team in association|get_teams_by_category_gender:category,gender %}
但是 django 不允许 2 个参数...我该怎么做?
基本上,我需要过滤器返回一个对象列表,以便循环遍历它,然后按类别和性别过滤团队。
谢谢, 阿拉
【问题讨论】:
标签: django templates django-templates
这里,
这是可能的,而且相当简单。
Django 只允许您的过滤器使用一个参数,但没有理由不能将所有参数放入一个字符串中,使用逗号分隔它们。
例如,如果您想要一个过滤器来检查变量 X 是否在列表 [1,2,3,4] 中,您将需要一个看起来像这样的模板过滤器:
{% if X|is_in:"1,2,3,4" %} 现在我们可以像这样创建你的模板标签:
from django.template import Library
register = Library()
def is_in(var, args):
if args is None:
return False
arg_list = [arg.strip() for arg in args.split(',')]
return var in arg_list
register.filter(is_in)
How do I add multiple arguments to my custom template filter in a django template?
【讨论】:
split(',') 处理您的模板标签方法。