И оператор в фильтре Django - PullRequest
0 голосов
/ 08 ноября 2019

Я создал конечную точку API Django Rest Framework. Мне бы хотелось, чтобы эта конечная точка извлекала все записи с полем Status, установленным на Free, поэтому я сделал это:

queryset = tst.objects.using('screener').filter(Status=Free)

Теперь я хочу получить не только поля с установленным полемдо Free, но также и со статусом, установленным на Pending.

. Я пытался это сделать:

class tstList(generics.ListCreateAPIView):
    criterion1 = Q(Status="Free")
    criterion2 = Q(Status="Pending")
    queryset = tst.objects.using('screener').filter(criterion1&criterion2)

По какой-то причине это представление ничего не получит. Если я попытаюсь выполнить запросы по отдельности, они будут работать:

queryset = tst.objects.using('screener').filter(criterion1) #works

Ответы [ 2 ]

2 голосов
/ 08 ноября 2019

Возможно, вам не нужен оператор &, кроме или (|) https://docs.python.org/3.8/library/stdtypes.html#boolean-operations-and-or-not

2 голосов
/ 08 ноября 2019

используйте это

queryset = tst.objects.using('screener').filter(criterion1|criterion2) 

прямо сейчас в используемом вами фильтре и условии, но вам нужно условие или

для получения дополнительной информации вы можете прочитать эту статью

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...