题
我知道如何建立过滤器和Q Django的对象,但我不知道该怎么否定了运营商的API提供,例如,用于包含运营商,我想是这样notcontains。
e.g。
q=Q(name__notcontains="SomeString")
这会得到我的所有对象,其名称不包含“SomeString”。
有一些语法我失踪?
三江源。
解决方案
您可以使用 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“)
不隶属于 StackOverflow