django中的自定义模板筛选器语法

django中的自定义模板筛选器语法,django,filter,django-template-filters,Django,Filter,Django Template Filters,因此,我创建了一个自定义过滤器: @register.filter(name='field_values') def field_values(model, field): return model.objects.values_list(field, flat=True) 它以模型类值和字段作为参数,并返回该特定字段的模型对象列表。这是我尝试调用它的模板 <tr> {% for field in fields %} <td>{{

因此,我创建了一个自定义过滤器:

@register.filter(name='field_values')
def field_values(model, field):
    return model.objects.values_list(field, flat=True)
它以模型类值和字段作为参数,并返回该特定字段的模型对象列表。这是我尝试调用它的模板

<tr>
    {% for field in fields %}
            <td>{{ model_class|field_values: field }} </td>
     {% endfor %}
</tr>

我希望一切都能顺利运行,但我得到了一个“*字段_值需要1个参数,0提供*”错误。当我已经插入了一个参数时,为什么会发生这种情况??过滤器语法有问题吗?

冒号后面有一个空格,使解析器感到困惑。请这样使用:

{{ model_class|field_values:field }}

(请注意,您的代码效率很低:它一遍又一遍地查询数据库,每个字段查询一次。与其这样做,不如在视图中查询一次,然后按字段对输出进行分组。)

ah没错!这么简单的错误。非常感谢,我会考虑你的建议,因为我已经经历了大量的加载时间。
{{ model_class|field_values:field }}