Как создать фильтр в Django с двумя разными статусами - PullRequest
0 голосов
/ 04 апреля 2019

Я хочу создать фильтр в администраторе Django, который бы возвращал записи с двумя различными состояниями по одному «фильтру», определенному как одно из:

def lookups(self, request, model_admin):
    return (
        ('1', 'class 1'),
        ('2', 'class 2'),
        ('3', 'class 3'),
        ('4', 'class 3')
    )

Я использую API, который возвращает мне все статусы с двумя дополнительными статусами, которые мне не нужны.

def queryset(self, request, queryset):
    if self.value() == 'all':
        return queryset.filter()
    else:
        return queryset.filter(client__status=self.value())

В моем списке фильтров Я хочу иметь только один логический элемент clients with status x, который предоставил бы мне всех клиентов со статусом M и статусом N.

1 Ответ

0 голосов
/ 04 апреля 2019
def queryset(self, request, queryset):
    if self.value() == 'all':
        return queryset.all()
    elif self.value() == 'clients with status x':
        return queryset.filter(client__status__in=['M', 'N', ])
    else:
        return queryset.filter(client__status=self.value())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...