如何删除父对象的所有子对象而不用 Django 删除父对象

时间:2021-06-24 11:14:49

标签: django django-models

我有两个模型使用相同的类作为外键。

我不想删除父模型(用作外键),而是删除与父模型关联的子模型。

class A(models.Model):
    pass

class B(models.Model):
    a = models.ForeignKey(A, on_delete=models.CASCADE, default=None)

class C(models.Model):
    a = models.ForeignKey(A, on_delete=models.CASCADE, default=None)

现在我将它们分别删除如下:

b_list = B.objects.filter(a = A)
    for b_list_item in b_list:
        b_list_item.delete()

c_list = C.objects.filter(a = A)
    for c_list_item in c_list:
        c_list_item.delete()

如何用一个命令将它们全部删除?

1 个答案:

答案 0 :(得分:2)

我更喜欢这个批量删除选项,而不是遍历对象。

B.objects.filter(a=A).delete()
C.objects.filter(a=A).delete()
相关问题