@DmSS1997

Как в django-filter реализовать поиск осуществляемый по нескольким параметрам?

Реализовал фильтрацию по полям таблицы.
60e02776d989c295022945.png
60e0279c83f2c233438507.png

Фильтрация работает как надо, но мне нужно чтобы при выборе, допустим первого этажа вместе с первым этажом в таблице ещё показывались записи где у этажа ещё стоит отметка любой, т.е выбираешь первый этаж в фильтре и записи фильтруются так, что показывается и 1-ый этаж и любой этаж. Не понимаю, как это можно реализовать. Помогите пожалуйста разобраться
Вот код из filters.py
class DailyOrdersFilter(django_filters.FilterSet):
    STATUS_CHOICES1 = (
        ('-1', '-1'),
        ('1', '1'),
        ('2', '2'),
        ('3', '3'),
        ('4', '4'),
        ('', 'любой'),
    )
    floor = django_filters.ChoiceFilter(choices=STATUS_CHOICES1, label='Требуемый этаж', lookup_expr='icontains')

    class Meta:
        model = DailyOrders
        fields = ['floor']


Я предполагаю, что готового решения нет и нужно самому прописывать method, но я не понимаю, как это сделать. Прошу помочь
  • Вопрос задан
  • 505 просмотров
Решения вопроса 1
@DmSS1997 Автор вопроса
Получилось написать самостоятельно.
Method выглядит достаточно просто, как выяснилось:
def floor_filter(self,queryset, name, value):
        return queryset.filter(Q(floor__icontains='любой')|Q(floor__icontains=value))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы