Django One to One - 不想删除相关模型

时间:2014-07-04 13:33:17

标签: django one-to-one relationships

所以这就是问题所在。我有2个型号:

裁判级别和裁判

以下是:

class RefereeLevel(models.Model):
    level = models.PositiveSmallIntegerField(blank=False,default=1,verbose_name=_("level"),unique=True)
    salary = models.DecimalField(blank=False,default=0.00,decimal_places=2,max_digits=4,verbose_name=_("salary"))

    def __unicode__(self):  # Python 2.7: def __unicode__(self):
        return self.level

第二节课:

 class Referee(models.Model):
    member = models.OneToOneField(Member,related_name='member',blank=False)
    information = models.ForeignKey(RefereeLevel,related_name='information',blank=False,null=True,default=1)

现在发生的是,如果我删除了RefereeLevel,则会删除该级别的裁判。但是我不想要那个,我希望裁判的信息都没有。

这可能吗?

谢谢, ARA

2 个答案:

答案 0 :(得分:6)

您需要设置on_delete参数。

在你的情况下:

information = models.ForeignKey(RefereeLevel,related_name='information',blank=False,null=True,default=1, on_delete=models.SET_NULL

答案 1 :(得分:1)

你可以做的是设置on_delete param like

information = models.ForeignKey(RefereeLevel,related_name='information',blank=False,null=True,default=1, on_delete=models.SET_NULL)

on_delete=models.SET_NULL会将外键值设置为null