2013-12-11 9 views
3

클래식 한 DateTimeField received a naive datetime while time zone support is active 경고가 표시됩니다. factory_boy에서 제공하는 팩토리를 활용하는 테스트를 실행할 때 오류가 발생합니다. 다음은 공장의 예는 다음과 같습니다날짜/시간 필드가 순수한 날짜 시간을 받았습니다

from django.utils.timezone import now 
import factory 
class PostFactory(factory.DjangoModelFactory): 
    FACTORY_FOR = models.Post 
    value = 42 
    created = now() 

당신이, 내가 온 순진한 날짜 일은주의해야 장고의 시간대에서 지금은() 메소드를 사용하고 볼 수 있지만 그렇지 않은 것처럼. 또한

class Post(models.Model) 
    value = models.IntegerField() 
    created = models.DateTimeField(auto_now_add=True) 

가, 내 settings.py 파일에, 나는 USE_TZ = True를 설정 : 다음과 같은 모델이 어떻게 표시되는지를 보여줍니다.

pytz을 설치하고 라이브러리를 사용하여 datetime 개체를 만들어 공장에서 필드를 채우지 만 작동하지 않습니다.

나는 경고를 억제 할 수 있지만 이미 코드의 다른 영역에서 나를 물결 치기 시작했다는 것을 알고 있으며, 그 아래쪽으로 들어가고 싶다. . .

+0

['dutnow()'가 'USE_TZ = True' 인 경우 인식 객체를 반환합니다.] (https://docs.djangoproject.com/en/dev/ref/utils/#django.utils.timezone.now) – jfs

+0

알아. 그래서 DateTimeField를 채우기 위해 d.u.t.now()를 사용하고 있기 때문에 나는 오류에 혼란스러워합니다. – user1427661

+0

이 코드 부분에 경고 메시지가 표시됩니까? – Rohan

답변

0

timezonesettings.py으로 변경해야합니다.

USE_TZFalse 일 때, 이것은 장고가 모든 datetimes를 저장할 시간대입니다. USE_TZTrue 일 때 장고가 템플릿에 datetime을 표시하고 양식에 입력 된 datetime을 해석하는 데 사용할 기본 시간대입니다.

+0

USE_TZ를 이미 True로 설정하십시오. 업데이트 된 게시물이 반영되도록 – user1427661

+0

작동하지 않습니다. 작동하지 않는 코드에 이미 USE_TZ가 True로 설정되어 있음을 언급하는 것을 잊어 버렸습니다. – user1427661

관련 문제