如果不存在一对多关系,则过滤对象

时间:2019-10-23 14:26:31

标签: django django-rest-framework

我有两个模型:

frame_time

如何获取ModelA中所有没有任何记录关联的ModelA对象。

1 个答案:

答案 0 :(得分:1)

您可以将其与None进行比较:

ModelA.objects.filter(modelb=None)

之所以可行,是因为执行了LEFT OUTER JOIN,因此如果不存在相关的ModelB,则会添加包含NULL s的行。

这将简化为如下查询:

SELECT app_modela.*
FROM app_modela
LEFT OUTER JOIN app_modelb ON app_modelb.titlecomponent = app.modela.id
WHERE app_modelb.id IS NULL