简体   繁体   English

如何在删除时执行CASCADE?

[英]How to execute CASCADE on delete?

I have this model in Django, where a person has the same information from the user provided by Django plus a little bit more information. 我在Django中有此模型,其中一个person从Django提供的user那里获得了相同的信息,外加了更多信息。 When I create a new person it requires to create a new user also, that's fine. 创建新person还需要创建一个新user But when I delete a person the user still remains on my database. 但是,当我删除一个personuser仍然保留在我的数据库中。 What am I missing here ? 我在这里想念什么? I would like to delete the user too. 我也想删除该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

Try to override the delete method on the model (code not tested): 尝试覆盖模型上的delete方法 (未经测试的代码):

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

I have found some relevant documentation about CASCADE usage in Django here . 我在这里找到了一些有关CASCADE用法的相关文档。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM