这样可行:
from django.db.models import Q
Item.objects.filter(Q(creator=owner) | Q(moderated=False))
根据:https://docs.djangoproject.com/en/dev/topics/db/queries/#spanning-multi-valued-relationships
这应该给我与第一个代码片段相同
Item.objects.filter(creator=owner, moderated=False)
但它的行为如下:
Item.objects.filter(creator=owner).filter(moderated=False)
编辑: 我误解了第二和第三个片段是相同的,除非多对多字段到位。但两者都与第一个片段
无关答案 0 :(得分:2)
Q与运营商|可以翻译成:
请告诉我creator=owner
或 moderated=False
(或者这里很重要)
.filter(creator=owner, moderated=False)
说:
请告诉我creator=owner
AND moderated=False