【问题标题】:Django One to One - Don't want delete related modelDjango 一对一 - 不想删除相关模型
【发布时间】:2014-07-04 13:33:16
【问题描述】:

所以这就是问题所在。我有 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,那么具有该级别的Referee 就会被删除。但我不希望这样,我希望裁判的信息设置为无。

这可能吗?

谢谢, 阿拉

【问题讨论】:

    标签: django one-to-one relationships


    【解决方案1】:

    您需要设置on_delete参数。

    在你的情况下:

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

    【讨论】:

    • 谢谢 不知道你能做到!
    【解决方案2】:

    你可以做的是设置 on_delete 参数喜欢

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

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

    【讨论】:

    • 谢谢,我不知道你能做到!
    猜你喜欢
    • 2016-06-05
    • 1970-01-01
    • 2015-02-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    相关资源
    最近更新 更多