我试图找到一个属性设置为None或空字符串的模型之一的所有实例。我想我错过了ORM的__in查询。“Q”与“__in”不一致的Django ORM查询结果
TextBlock.objects.filter(content='').count()
>185
TextBlock.objects.filter(content=None).count()
>235
TextBlock.objects.filter(content__in=['', None]).count()
>185
TextBlock.objects.filter(Q(content='')|Q(content=None)).count()
>420
TextBlock.objects.filter(content__in=[None, '']).count()
>185
当我这样做有IntegerFIeld和不使用无或空字符串,我得到:
TextBlock.objects.filter(order=1).count()
> 575046
TextBlock.objects.filter(order=2).count()
> 11946
TextBlock.objects.filter(order__in=[1,2]).count()
> 586992
这是我所期待的。期待TextBlock.objects.filter(content__in=['', None]).count()
返回420个结果,我错了吗?如果是这样,为什么?
Q查询做我想要的,所以我最终会去,但我仍然好奇为什么第三个查询没有做我想要的。
谢谢!
编辑:如果它的确与众不同,但内容领域是models.TextField和顺序字段是models.IntegerField