django_filters自定义的方法的字段名

问题描述 投票:0回答:1

当我运行这段代码,我得到[无效名称]:在Django的REST的框架的看法过滤器弹出。

我想显示名称为“发现”来代替。如何设置这个名字呢?

class MyModelFilter(filters.FilterSet):
    search_name = filters.CharFilter(field_name='name', lookup_expr='icontains')
    find_anywhere = filters.CharFilter(method='look_anywhere')

    def look_anywhere(self, queryset, name, value):
        return queryset.filter(Q(name__icontains=value) | Q(description__icontains=value))

    class Meta:
        model = MyModel
        fields = {'search', 'find_anywhere'}

当调用

/api/mymodels/?find_anywhere=something

它工作正常。

它是在DRF意见过滤器的名称:

enter image description here

django django-rest-framework django-filter
1个回答
5
投票
search_name = filters.CharFilter(field_name='name', lookup_expr='icontains', label="Put Label Here")
© www.soinside.com 2019 - 2024. All rights reserved.