[Django] RuntimeWarning: DateTimeField received a naive datetime
Issue
- Python Djnago에서 날짜와 시간을 다루는 DateTimeField를 사용 시, timezone관련 이슈
원인
- timestamp without time zone인 것을 테이블 스키마를 장고로 Insert할 때, DateTimeField로 정의
- 해당 컬럼(필드)에 대해
datetime.now()
로 현시점 datetime 데이터 값을 넣으면 문제가 발생
settings.py
의 timezone과 datetime.now()
의 timezone이 다르기 때문
해결방안
1안) settings.py USE_TZ 수정
settings.py
의 USE_TZ = True
값을 False
로 변경
- USE_TZ = True
: Django 내부적으로 시간대를 인식하는 날자 및 시간 가용
USE_TZ = False
: Local Time을 사용
2안) from django.conf import timezone 사용
- python의
datetime
을 사용하는 것이 아닌,
django.conf
의 timezone
을 사용하여 데이터값을 만들어서 Insert