Это зависит от того, чего вы хотите достичь. С логическими значениями легко переключаться между .exclude()
и .filter()
, но как насчет, например, если вы хотите получить все статьи, кроме тех, что в марте? Вы можете написать запрос как
Posts.objects.exclude(date__month=3)
С .filter()
это будет (но я не уверен, работает ли это на самом деле):
Posts.objects.filter(date__month__in=[1,2,4,5,6,7,8,9,10,11,12])
или вам придется использовать объект Q
.
Как уже говорит название функции, .exclude()
используется для исключения наборов данных из набора результатов. Для логических значений вы можете легко инвертировать это и использовать вместо него .filter()
, но для других значений это может быть более сложным.