如何删除表单字段标签中的 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
以禁用此行为 - 您可能想试试这个。
当我在过滤器中自定义搜索类型时:
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
以禁用此行为 - 您可能想试试这个。