ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TIL.70 auto_now VS auto_now_add 차이
    TIL/Django 2020. 12. 17. 13:18
    728x90

    Django의 ModelField 중 DateField , DateTimeField 필드의 옵션으로 사용되는

    auto_now 와 auto_now_add의 차이에 대해 알아보자.


    먼저 DateFieldDateTimeField는 언제 사용하는지 알아보자.

    DB 에서 CURRENT_TIMESTAMP 로 생성되야하는 정보일때 해당 필드를 사용하는데

    예를 들어

    게시물을 작성한 시간, 리뷰를 작성한 시간, 작성한 게시물을 수정한 시간, 리뷰의 리뷰를 작성할때의 시간 등

    DB에 Timesatamp로 생성되어 저장되어야 하는 정보의 column 값을 지정해줄때 위와 같은 필드를 사용한다.

    보통 최초 생성 시간 (created_at) 과 수정 시간 (updated_at) 2가지를 모두 구성해주는것이 컨벤션이다.


    DateField와 DateTimeField에는 auto_now , auto_now_add 등의 속성이 존재한다.

    본격적으로 auto_now 와 auto_now_add의 차이에 대해 알아보자.

    출처 : https://docs.djangoproject.com/en/1.10/ref/models/fields/#django.db.models.DateField

     

     

    • 수정일자 : 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
Designed by Tistory.