Create a Tracking Model

김동완·2022년 7월 22일
0

DRF For Biginners

목록 보기
1/8
post-thumbnail

Create a Tracking Model

  • Django는 모델을 생성할 때마다 유사한 필드를 적용해야할 때가 있다.

  • Tracking Model을 사용하여, 장고 모델의 객체가 생성되거나 업데이트 될 때 검색 방법을 통해 대부분의 항목이 어플리케이션에 공통적으로 적용된다.

  • 장고는 생성된 각 모델에서 생성된 것과 같은 필드를 제공하지 않으므로 우리는 모델 helper를생성하여, 모델을 생성할 때 세부정보를 한 번에 빠르게 추가할 수 있는 helper를 생성한다.

생성방법

  • helpers라는 폴더를 생성하고 models.py 파일을 만든다
class TrackingModel(models.Model) :
    # 객체가 생성된 시간에 맞게 생성됨 
    created_at = models.DateTimeField(auto_now_add=True)
    # 객체가 수정될 때 마다 시간이 갱신됨 
    updated_at = models.DateTimeField(auto_now=True)
    
    
    class Meta :
        abstract=True
        # 생성 시간을 역정렬해서 정렬함 
        ordering=('-created_at',)
  • abstract=True 옵션
    • 부모 모델은 실제로 존재하지 않는 가상의 클래스가 된다.
    • 자식 모델은 부모 필드의 속성과 함수를 물려받는 실체가 있는 DB 테이블이 된다.
    • abstract를 사용한다는 것은 자식 모델들이 부모 없이 각각 독립적인 DB 테이블로서 존재하며, 자식과 부모의 상속관계는 실제로 없는 것이다. 공통된 필드가 많이 있는 모델 클래스들이 있을 때 코드를 효율적으로 사용하기에 편리한 기능이다.
  • ordering
    • 객체를 조건 내의 순서로 정렬할 수 있다.
profile
내가 공부한 내용들이 누군가에게 도움이 될지 몰라서 쓰는 벨로그

0개의 댓글