如何在删除时执行CASCADE? [英] How to execute CASCADE on delete?

查看:362
本文介绍了如何在删除时执行CASCADE?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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. When I create a new person it requires to create a new user also, that's fine. But when I delete a person the user still remains on my database. What am I missing here ? I would like to delete the user too.

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

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 此处.

这篇关于如何在删除时执行CASCADE?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆