2014-10-02 3 views
0

Date, Integer 및 CharFields와 같은 몇 가지 필드의 기본값을 설정하려고하지만 default=12 (정수의 경우)과 같이 설정하면 페이지에 반영되지 않습니다. 그러나 기본값 인 0이 항상 표시됩니다.Django 모델에서 기본값을 설정할 수 없습니다.

Months = models.IntegerField('Enter the month',default=12 

위의 필드는 필수 입력란이므로 기본값 0이 양식에 표시되지만 0 이외의 것은 표시되지 않습니다.

이 경우 charField 및 DateField의 경우입니다.이 경우 양식에는 아무 것도 표시되지 않습니다.

백엔드에서 mySQL을 사용하고 있습니다.

기본 날짜를 '0000-00-00'으로 설정하고 싶습니다. 어떻게해야합니까?

+0

'default = 12'는 새로 생성 된 모델에만 적용됩니다. 데이터베이스의 기존 값은 명시 적으로 변경할 때까지 이전 값을 유지합니다. – stalk

+0

새 모델은 새 테이블을 의미합니까? 또는 새 데이터 항목? – User42

+0

나는 장고에 관한 새로운 모델 인스턴스를 의미한다. 새 테이블 행에 해당합니다. 'YourModel (** data) .save()'<- 새 모델 인스턴스가 저장되었습니다. 즉, 새 행이 SQL 데이터베이스 – stalk

답변

0

설정 모델에 기본 값 당신이
Months = models.IntegerField('Enter the month',default=12... 

을 제안하지만이 값이 객체가 생성되고 당신 해달라고을 사용되므로이 기본 값이 추가됩니다

이 필드에 값을받습니다.

예 :

class Year (models.Model): 
    name = models.CharField(max_length=75) 
    months = models.IntegerField(default=12) 

지금 콘솔/당신이 할 수있는보기 : 기본값은 실제로 존재하는 경우

new_year = Year(name='any_name') 
new_year.save() # And the Year object is created with months = 12 
0

당신은 확인해야합니다. 모델을 생성하고 syncdb를 적용한 후에 기본값을 추가했다면 makemigrate (Django 1.7에서) 또는 South와 같은 외부 응용 프로그램을 실행하여 데이터베이스 테이블을 변경해야합니다. syncdb를 실행하지 않거나 syncdb 만 실행하면이 변경 사항이 MySQL에 반영되지 않습니다.

관련 문제