-
[Django]def __str__(self)/TimeStampedModelDjango_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