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 }}