【发布时间】:2018-06-10 12:48:35
【问题描述】:
我有这两个模型:
Parent(models.Model):
name=models.CharField(max_length=10)
Child(models.Model):
parent=models.ForeignKey(Parent)
name=models.CharField(max_length=10)
我正在寻找一种有效的方法来删除没有孩子的父母。目前,我正在使用 RAW SQL:
from django.db import connection
SQL="DELETE FROM app_parent WHERE app_parent.id NOT IN (SELECT id FROM app_child"
哪个正在运行两个查询,我仍然想使用 Django ORM。同样,使用 ORM,我首先获取子列表,然后检查父 ID 是否存在。
有没有更快的方法?
【问题讨论】:
-
这实际上仍然是一个查询,但它有子查询。然而,它将以相同的时间复杂度运行。我们可以加快速度。
-
加快速度如何@WillemVanOnsem
标签: django