OneToOne模型以两种方式删除级联

时间:2018-09-03 17:08:44

标签: django django-models

我有2种型号:

   class A(models.Model):
        name = models.CharField(max_length=50)


        def __str__(self):
            return "%s the place" % self.name

    class B(models.Model):
        a = models.OneToOneField(Place,on_delete=models.CASCADE)
        name = models.CharField(max_length=50)

我想要:

  1. 如果A被删除,B将被删除(有效)
  2. 如果删除了B,也删除了A

1 个答案:

答案 0 :(得分:0)

我认为您可以使用两个主要选项:

1-在模型B上创建一个信号post_delete,它将删除模型A上的记录: https://docs.djangoproject.com/en/2.1/ref/signals/#django.db.models.signals.post_delete

2-覆盖模型B的删除方法: Override django's model delete method for bulk deletion

相关问题