2014-07-04 3 views
3

그래서 여기에 문제가 있습니다. 두 번째 클래스장고 일대일 - 관련 모델 삭제 원하지 않음

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 

을 그리고 : 여기

는 둘 다

RefereeLevel 및 심판 : 나는이 개 모델을 가지고

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

감사를 null로 외래 키 값을 설정합니다

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

on_delete=models.SET_NULL 같은 on_delete PARAM을 설정하는 것입니다 ! –

1

당신이 할 수있는 것은 didnt가 그럴 수 알고

+0

고마워, 나는 네가 그럴 수 있다는 것을 몰랐다! –

관련 문제