如何删除表单fileld标签中的django-filter附加关键字

时间:2018-03-28 09:56:30

标签: django django-filters

当我在过滤器中自定义搜索类型时:

django_filters.CharFilter(lookup_expr='icontains')

它将' [field_name]包含' 关键字添加到模板{{ field.label }}中显示标签的末尾。我在模型中特别使用verbose_name='Some filed'参数使其可以在模板中访问,但过滤器会因为莫名其妙的原因对其进行修改。 是否有任何选项可以显示,因为我在versbose_name中设置了它?

UPD: 解决了这个问题,将其添加到settings.py

 def FILTERS_VERBOSE_LOOKUPS():
    from django_filters.conf import DEFAULTS

    verbose_lookups = DEFAULTS['VERBOSE_LOOKUPS'].copy()
    verbose_lookups.update({
        'exact': (''),
        'iexact': (''),
        'contains': (''),
        'icontains': (''),
    })
    return verbose_lookups

1 个答案:

答案 0 :(得分:2)

您可以将label参数添加到过滤器,以明确设置字段的标签:

django_filters.CharFilter(lookup_expr='icontains', label='the label')

https://django-filter.readthedocs.io/en/master/ref/filters.html#label

此外,如果您不喜欢django-filters创建过滤器的方式,您可以使用FILTERS_VERBOSE_LOOKUPS设置(https://django-filter.readthedocs.io/en/master/ref/settings.html#verbose-lookups-setting)。我还没有对其进行测试,但它表示您可以将其设置为False以禁用此行为 - 您可能需要尝试此操作。