【问题标题】:How can I delete all child objects of a parent object without deleting parent object with Django如何在不使用 Django 删除父对象的情况下删除父对象的所有子对象
【发布时间】:2021-06-24 11:14:49
【问题描述】:

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

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

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()

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

【问题讨论】:

    标签: django django-models


    【解决方案1】:

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

    B.objects.filter(a=A).delete()
    C.objects.filter(a=A).delete()
    

    【讨论】:

    • 好的,我也更喜欢这个。但是还有其他隐含的方式吗?
    猜你喜欢
    • 2018-12-27
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 2021-11-11
    • 1970-01-01
    • 2013-07-16
    相关资源
    最近更新 更多