如何在删除时执行CASCADE?

时间:2015-05-28 23:19:52

标签: python django orm models

我在Django中有这个模型,其中person具有来自Django提供的user的相同信息以及更多信息。当我创建一个新的person时,它也需要创建一个新的user,这很好。但是,当我删除person时,user仍保留在我的数据库中。我在这里错过了什么?我也想删除user

class Person(models.Model):
    user = OneToOneField(User)
    gender = CharField(max_length=1, choices=GenderChoices, blank=True, null=True)
    birth_date = DateField(blank=True, null=True)

    def __unicode__(self):
        return self.user.username

1 个答案:

答案 0 :(得分:0)

尝试在模型上override the delete method(代码未经测试):

class Person(models.Model):
    user = OneToOneField(User)
    gender = CharField(max_length=1, choices=GenderChoices, blank=True, null=True)
    birth_date = DateField(blank=True, null=True)

    def __unicode__(self):
        return self.user.username

    def delete():
        theuser = User.objects.get(id=user)
        theuser.delete()

我在Django here找到了一些关于CASCADE用法的相关文档。