장고에서 ORM 을 사용하는 경우 Model 을 만들면 Class 객체 하나를 테이블로 만들어 버리게 된다. 그냥 추상 클래스로 상속해서 쓰게 하려는 경우 낭패가 된다 이때 사용하는 키워드가 Meta 라는 것이 있네.
from Django 실전 프로젝트 1 - URL Shortener 서비스 ( 패스트캠퍼스 )
class 내에 "class Meta:" 라는 것을 하나 더 두고
abstract = True 로 속성을 설정하면, 이 class 는 DB 테이블로 변환되지 않고 상속에 쓸 수 있는 class 로 남겨둔다.
즉, TimeStampModel 에 보면
"updated_at"
"created_at"
이라는 필드가 다른 테이블에 거의 공통으로 사용되고 있어 이 부분을 한 곳에 정리해 두고 상속해서 쓰도록 하고 싶은데
class Meta: 설정을 해 주지 않으면,
의도하지 않게 TimeStampModel 자체를 테이블로 인식해서 만들어 버려 테이블 조인 형태가 되버린다.
이를 해결 하기 위해서 알아둬야 한는 팁!!
Laura Balbarde 님의 사진, 출처: Pexels