2010-05-27 2 views
0

나는이 간단한 블로그 모델이 있습니다IntegrityError과 PostgreSQL

class Blog(models.Model): 

    title = models.CharField(_('title'), max_length=60, blank=True, null=True) 
    body = models.TextField(_('body')) 
    user = models.ForeignKey(User) 
    is_public = models.BooleanField(_('is public'), default = True) 

내가 관리 인터페이스에서 블로그를 삽입, 난이 오류 얻을 :

IntegrityError at /admin/blogs/blog/add/ 

null value in column "is_public" violates not-null constraint 

왜 ???

답변

0

흠. 이상한 버크. 그것을 의미한다 기본은 항상 설정되어 있기 때문에 일어나고있다, 그러나 이것은 당신이/마이그레이션 관련 스키마 변경을 적용 할 경우

is_public = models.BooleanField(_('is public'), default=True, null=True)

+1

난 당신이 가질 수 없습니다 보라, 그것을 수정해야하는 이유를 말할 수 없다 진정한 = 널 (null) BooleanField에 [NullBooleanField] (http://docs.djangoproject.com/en/dev/ref/models/fields/#nullbooleanfield)를 사용해야합니다. –

+0

내가 말한 것처럼 null = True를 추가하면이 오류가 발생합니다 : 오류 : 하나 이상의 모델이 유효성을 확인하지 못했습니다. blogs.blog : "is_public": BooleanFeilds는 null 값을 허용하지 않습니다. 대신 NullBooleanField를 사용하십시오. 그래서 지금 NullBooleanFields 사용하고 작동하지 않습니다. 하지만 왜이 일을해야합니까? 이상하네요. - \ – xRobot

+0

그래, 미안해. 리버스가 분명하다. –