Поля фильтра django + пользовательское поле Q

Я пытаюсь использовать обычные поля фильтра с несколькими полями поиска. Если я помещаю просто

fields = [`q`]

или

fields = {
    'model': ['icontains'],
    'type' : ['icontains'],
}

тогда он работает, но если я пытаюсь использовать их вместе, он не работает. Как мне заставить это работать?

filter.py

class CustomFilter(django_filters.FilterSet):

    q = django_filters.CharFilter(method='custom_search_filter',label="Title & Tag Search")

    class Meta:
        model = CustomModel
        fields = {
            'model': ['icontains'],
            'type' : ['icontains'],
            ['q']
        }

    def custom_search_filter(self, queryset, name, value):
        return queryset.filter(
            Q(title__icontains=value) | Q(tag__icontains=value)
        )

Вы вообще не помещаете декларативно объявленный фильтр в Meta. Meta - это способ позволить инициализации фильтра создать шаблон для общих случаев.

Попробуйте просто удалить ['q'], т.е.

fields = {
        'model': ['icontains'],
        'type' : ['icontains'],
    }
Вернуться на верх