2010-06-23 2 views
5

장고을 통해 파이썬 앱을 제공하고 있습니다. 이 응용 프로그램 내에서 몇 가지 테이블 내에 "created"필드를 저장합니다.Datetime.now() 이상 - Python

이 필드 장고 양식을 내 보이는 방법입니다

created = models.DateTimeField(blank=True, default=datetime.now()) 

불행하게도, datetime.now()가 정확하지 않습니다. 사실 데이터베이스에는 정확히 동일한 타임 스탬프가있는 행 집합이 있습니다.

datetime.now() 값은 30-45 분마다 변경되는 것으로 보입니다.


내 Django 응용 프로그램은 IIS6 뒤에있는 Windows Server 2005에서 제공됩니다.

도움이 될 것입니다.

답변

6

왜냐하면 모듈이 초기화되고 해당 값이 기본값으로 사용 중이기 때문에 datetime.now()가 호출되기 때문입니다. 당신은 자동 옵션을 설정하는 경우 '빈'에 대한 필요 :

당신은 auto_now_add=True parameter

created = models.DateTimeField(auto_now_add=True) 

편집을 사용하고 싶습니다.

10

이 불행하게도, 일반적인 초보자의 실수입니다. 이고 정의는 datetime.now()입니다. 즉, 기본값은 정의가 실행 된 시간, 즉 서버 프로세스가 시작될 때입니다.

당신은 대신 호출를 전달해야 호출 괄호없이

created = models.DateTimeField(blank=True, default=datetime.now) 

즉.

(또는 auto_now_add=True 만 사용하십시오.)