ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Django]def __str__(self)/TimeStampedModel
    Django_BE 2023. 5. 23. 18:06

    def __str__(self):

    model에서 안에 다음과 같은 코드가 있었다

     def __str__(self):

    언더바 2개로 정의된 함수들은 메소드이다

    __str__함수는 객체를 문자열로 표현한 것을 반환해주는 함수이다

    self는 객체 내붕서 정의된 것들을 지칭하기 위해서 사용


    TimeStampedModel

    model에 아래와 같은 코드가 있었다

    class Place(core_models.TimeStampedModel):

    여기서 core_models.TimeStampedModel이 뭔지 궁금했다.

    장고에서 데이터 설정 시간, 업데이트 시간을 기록하기 위해서 여러 필드를 설정해주는 경우가 있는데 이를 TimeStampedModel에 한번만 필드를 지정해놓고 상속을 받아서 사용하는 것이 좋아서

     

    core/models.py에 보면

    from django.db import models
    
    # Create your models here.
    
    
    class TimeStampedModel(models.Model):
        """Time stamped Model"""
    
        created = models.DateTimeField(auto_now_add=True)
        updated = models.DateTimeField(auto_now=True)
    
        class Meta:
            abstract = True #admin에서 안보이게

    이런식으로 TimeStampedModel이 정해져있는게 보였다

     

    • auto_now_add=True: 데이터가 생성되어 처음 저장 될때 시간이 기록된다는 의미
    • auto_now=True: 데이터가 수정될때마다 시간이 업데이트 된다는 의미
    • class Meta: abstract=True: 해당 클래스를 추상화 기초 클래스로 선언한다는 의미로 장고에서 마이그레이션을 실행할 때 timestanpedmodel에 대한 테이블이 생성되지 않는다

     

    'Django_BE' 카테고리의 다른 글

    [Python Django]에러 메시지 보이기  (0) 2023.05.30
    [Django]rest_framework에 노란줄  (0) 2023.05.27
    [POSTMAN]  (0) 2023.05.27
    [Django]postman이 안될때  (0) 2023.05.17
    [Django]장고 서버 돌리기  (0) 2023.05.17
Designed by Tistory.