В Django QuerySet, как мне сделать отрицание в фильтре?
Фильтрация запросов QuerySet в Django работает следующим образом:
Entry.objects.filter(year=2006)
Как я могу использовать фильтр для поиска всех записей, которые не имеют 2006 года? Нечто похожее на следующий sql:
SELECT *
FROM entries
WHERE not year = 2006
Ответы
Ответ 1
Я думаю, что вы ищете метод exclude()
:
>>> Entry.objects.exclude(year=2006)
Вернет все объекты Entry, которые не были в 2006 году.
Если вы хотите дополнительно фильтровать результаты, вы можете связать это с методом filter():
>>> Entry.objects.exclude(year=2006).filter(field='value')