-
TIL.70 auto_now VS auto_now_add 차이TIL/Django 2020. 12. 17. 13:18728x90
Django의 ModelField 중 DateField , DateTimeField 필드의 옵션으로 사용되는
auto_now 와 auto_now_add의 차이에 대해 알아보자.
먼저 DateField 와 DateTimeField는 언제 사용하는지 알아보자.
DB 에서 CURRENT_TIMESTAMP 로 생성되야하는 정보일때 해당 필드를 사용하는데
예를 들어
게시물을 작성한 시간, 리뷰를 작성한 시간, 작성한 게시물을 수정한 시간, 리뷰의 리뷰를 작성할때의 시간 등
DB에 Timesatamp로 생성되어 저장되어야 하는 정보의 column 값을 지정해줄때 위와 같은 필드를 사용한다.
보통 최초 생성 시간 (created_at) 과 수정 시간 (updated_at) 2가지를 모두 구성해주는것이 컨벤션이다.
DateField와 DateTimeField에는 auto_now , auto_now_add 등의 속성이 존재한다.
본격적으로 auto_now 와 auto_now_add의 차이에 대해 알아보자.
- 수정일자 : auto_now=True 사용
auto_now=True 는 django model 이 save 될 때마다 현재날짜(date.today()) 로 갱신됩니다.
주로 최종수정일자 field option 으로 주로 사용됩니다. - 생성일자 : auto_now_add=True 사용
auto_now_add=True 는 django model 이 최초 저장(insert) 시에만 현재날짜(date.today()) 를 적용합니다.
즉, created_at 은 최초 생성시만 기입해주는 auto_now_add=True 사용하며
updated_at 은 auto_now=True 를 지정하여 사용하면 된다.
create_at 은 시간을 다시 갱신하지 않고 최초 생성 시간을 1번 사용하여 저장되는 것(갱신 불가능)
updated_ad은 시간을 계속 갱신하여 장고 모델이 저장될때마다 현재날짜(시간)으로 갱신되는 것이다.(갱신 가능)
728x90'TIL > Django' 카테고리의 다른 글
TIL.69 FloatField 활용하기 (0) 2020.12.16 TIL.68 __str__은 무엇일까 (0) 2020.12.15 TIL.64 (Token)_Authentication (0) 2020.12.11 TIL.58 Django Rest Framework_serializer(직렬화) (0) 2020.12.06 TIL.57 null=True 와 blank=True 의 차이(Django) (0) 2020.12.05 - 수정일자 : auto_now=True 사용