在djangoshell中,当我过滤单个Q对象时,它返回正确的QuerySet。但是当相同的Q对象是和时,它返回一个空的QuerySet。在
File.objects.filter(Q(relatedjira__content__icontains='1112'))
<QuerySet [<File: abc.txt>]>
File.objects.filter(Q(relatedjira__content__icontains='5368'))
<QuerySet [<File: abc.txt>]>
但是当我将Q对象与AND组合时,它返回空集:
^{pr2}$
对于组合查询,它只返回具有单个}。在
relatedjira
的文件,其中内容同时包含'1112'
和{如果您将},其中内容包含
Q
对象放在单独的过滤器中,那么它将返回具有relatedjira
的文件,其中内容包含'1112'
,另一个{'5368'
这是合乎逻辑的。如果查询相关的对象,那么Django的过滤机制是存在的:因此,如果一个^{{cd1>}具有此内容,就足够了。
但是,如果对关系执行多个过滤器,这些都会对相同的相关对象产生影响。对于给定的^{cd2>},可能有两个^{cd3>},一个具有^{{cd4>},另一个具有^{cd5>},但如果使用这两个查询,则不会生成元素,因为两个^{{cd3>}是不同的。
例如:
您的第一个查询读取:
这是成功的。
第二个查询的内容如下:
这是成功的。
但最后一个查询是:
这是失败的,因为没有包含两个子字符串的^{cd3>}。
相关问题 更多 >
编程相关推荐