2012-12-15 3 views
0

장고 모델의 외래 키 필드에서 기본값을 0으로 설정합니다. TestModel을 저장하는 동안, 나는 나라를 제공 할 수없는, 어떤 이유외래 키 필드 올리기 오류에서 기본값 0

class TestModel(models): 
    name = models.CharField(max_length=255, blank=True) 
    reg_from = models.CharField(max_length=255, blank=True) 
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES, blank=True, null=True) 
    country = models.ForeignKey(Country, blank=True, default=0) 

:하지만

안녕, 나는 다음과 같은 코드를 가지고 ("열 'country_id는'null 일 수 없습니다"1,048) IntigrityError을 제기한다 정보. 나중에 업데이트하고 싶습니다.

Krish 수출

+0

국가 모델은 어떤 모습입니까? 즉 어떤 값을 사용할 수 있습니까? – Talvalin

+3

기본 키가 0 인 국가를 찾고 있습니다. 'country = models.ForeignKey (Country, blank = True, null = True)'가 있어야합니다. – karthikr

+0

null 값은 db를 느려지 게하므로 null 값이 없습니다. 그래서 적용 가능한 국가가없는 모든 행, 나는 0을 가지고 싶습니다 – Elisa

답변

0

필자는 필드 null을 빠르고 더러운 솔루션으로 만들었습니다.

-1

변경에 당신의 정의 : 당신이이 열에 대한 값을 설정해야합니다없이

country = models.ForeignKey(Country, blank=True, null=True, default=0) 

null=True 속성은 DB에서 country 열에 NULL 매개 변수를 설정합니다.

또한 default=0은 기본값이 아니므로 필요하지 않습니다.

+0

null 값은 db를 느려지 게하기 때문에 널 값이 없습니다. 그래서 적용 가능한 국가가없는 모든 행, 나는 0을 가지고 싶습니다 – Elisa

+0

무엇? Null로 인해 DB가 느려 집니까? :-) OK,'null = True'와'default = 0'을 설정하면 데이터베이스는 기본적으로'country'를'0'으로 설정합니다. – MostafaR

0

0 대신 시도하십시오. 0은 정수입니다. 어쨌든 작동하지 않아야합니다.

+1

이 질문에 대한 답을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남겨 둡니다. –

+0

그것은 질문의 형태로 조언했습니다. –

1

국가 모델에 PK = 0의 개체가 없기 때문에 오류가 발생합니다.

필드를 null으로 설정하지 않으려면 Country.objects.create(name='No Country', pk=0)과 같은 pk=0 인 국가 개체를 간단히 만듭니다.

필드를 null으로 설정하고 default=0을 사용하는 것이 더 좋은 해결책 일 수 있습니다.