2014-07-04 54 views
3

所以這裏是問題所在。我有2種型號:Django一對一 - 不想刪除相關模型

RefereeLevel和裁判員

下面是兩個:

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,該級別的裁判被刪除。但我不想那麼做,我想把裁判的信息設置爲無。

這可能嗎?

感謝, 阿糖胞苷

回答

5

您需要設置on_delete參數。

你的情況:

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

由於不知道你能說! –

1

你可以做的是設置on_delete PARAM像

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

on_delete=models.SET_NULL將設置外鍵的值設置爲null

+0

謝謝,我不知道你能做到! –