장고에서
생성 시점의 시간을 기록하기 위해서는 2가지 방법이 있다.
(생성 시점 field를 reg_time)이라고 하자
첫 번째
class Post(models.model):
reg_time = models.DateTimeField(auto_now_add=True)
두 번째
import datetime
class Post(models.model):
reg_time = models.DateTimeField(default=datetime.datetime.now)
위와 같이 2가지 방법으로 reg_time을 설정해줄 수 있다.
추가 :
여기서 default=datetime.datetime.now()를 하게 되면
함수를 실행시켜서 반환하는 값을 전달하게 되므로, 제대로 값이 전달 될 수 없다.
참고 :
[python-장고 날짜 시간 문제 (default = datetime.now ())](https://stackoverflow.com/questions/2771676/django-datetime-issues-default-datetime-now)
추가 이슈 :
실제 고객이 사용하고 있는 서비스(DB)에서 reg_time을 모델에 추가해주려고 할 때,
일단 db에서 먼저 migrate를 해주게 되면, 해당 DB를 생성할 때 아직 모델에 해당 reg_time을 어떻게 넣어라는 내용이 없으므로
"Field 'reg_time' doesn't have a default value") 라는 에러가 생긴다.
그럼 먼저 API 서버에 코드를 먼저 배포해주면, reg_time이라는 필드가 DB에 생성되지 못해서 에러가 발생한다....
어떻게 해야할지 고민이다.
'Django' 카테고리의 다른 글
CELERY에 대해(주의할 점) (0) | 2020.05.06 |
---|---|
Django ORM 성능 개선하기(실제 서비스에서) (1) | 2020.05.04 |
django celery extension(django-celery-results) (0) | 2020.03.17 |
django celery 적용하기 (0) | 2020.03.17 |
Django migration 되돌리기, 재실행 방법 (3) | 2020.01.29 |