当我在过滤器中自定义搜索类型时:
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
答案 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
以禁用此行为 - 您可能需要尝试此操作。