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

How to remove django-filter additional keywords in form fileld label

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

django_filters.CharFilter(lookup_expr='icontains')

它在模板 {{ field.label }} 中显示标签的末尾添加 '[field_name] contains' 关键字。我在我的模型中专门使用 verbose_name='Some filed' 参数以使其在模板中可访问,但过滤器出于莫名其妙的原因修改了它。 是否有任何选项可以显示我在 versbose_name 中设置的内容?

更新: 解决了这个添加到 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

您可以将 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 以禁用此行为 - 您可能想试试这个。