Django的ORM过滤器获取的行总数是\u null=True,是\u null=False与所有行的总数不同。为什么?

2024-09-22 14:27:16 发布

您现在位置:Python中文网/ 问答频道 /正文

如果不深入我的项目的细节,我想我只是没有看到一些非常简单的东西,需要一些新鲜的头脑来看待它。 因此,请看以下查询:

>>> p = MartProduct.objects.filter(source_id=2, eans__isnull=True).count()
100
>>> p = MartProduct.objects.filter(source_id=2, eans__isnull=False).count()
50
>>> p = MartProduct.objects.filter(source_id=2).count()
125

当然,知道模型及其字段代表什么并不重要。这只是一个问题,即is \u null=Trueis \u null=False的总和应该与总行数匹配。换句话说,我希望最后一次查询的结果是150而不是125!如果是相反的方式(对象总数>;比的和是真的是假的那么我可以想到原因,但这很奇怪)

是什么原因造成的?我想不出什么了。 感谢所有加入这个拼图的人:)


Tags: 项目idfalsetruesourceobjectsiscount