以下模型关系:
classA对classC有一个不可为空的FK字段。
classB对classC有一个可为空的FK字段。
我需要一个classA记录列表,其中没有连接到公共classC记录的classB记录。
在postgres中,两个查询都给出了我想要的结果,而在sqlite中,它们都给出了一个空结果:

ClassA.objects.annotate(num_classb=Count('classc__classbs')).filter(num_classb=0)

ClassA.objects.filter(classc__classbs__isnull=True)

我哪里做错了?我没有发现postgres和sqlite在处理此类过滤器/注释方面的差异

最佳答案

是否尝试附加.order_by()?
来源:https://docs.djangoproject.com/en/1.9/topics/db/aggregation/#interaction-with-default-ordering-or-order-by

关于django - Django注释/计数过滤器仅适用于postgres而不适用于sqlite,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37029399/

10-09 01:27