Вы можете использовать exclude()
вместо filter()
:
Entry.objects.exclude(name__contains="SomeString")
("дайте мне все записи, кроме тех, для которых names
содержит" SomeString ")
И когда вы имеете дело с объектом Q, вы можете использовать символ "~" перед объектом Q для обозначения отрицания. Например, следующее утверждение означает «дать мне все записи с names
, содержащие« Слон », но НЕ содержащие« SomeString »:
Entry.objects.filter(Q(name__contains="Elephant") & ~Q(name__contains="SomeString"))
В некоторых случаях вы можете использовать оба метода:
Entry.objects.exclude(Q(name__contains="Elephant") & ~Q(name__contains="SomeString"))
("дайте мне все записи, КРОМЕ тех, у которых names
содержит" Слон ", но НЕ содержит" SomeString ")