Django에는 추상모델이라는게 존재한다
Abstract Model이란 실제 데이터베이스에 반영되어 생성되지는 않지만,
다른 모델의 부모 클래스가 됨으로써 중복 작성을 막아주는 역할을 한다.
예를 들어서 블로그를 만든다고 했을때, 필요한 모델이 Post, Comment 모델이라고 하자.
글을 작성할 때도 생성시간과 업데이트 시간이 존재하고, 댓글을 달아도 두개의 시간이 필요하다.
그러면 두개의 모델에 같은 필드를 두번씩 써야하는 중복이 발생한다
이를 없애고자 사용하는 모델이 추상모델이다.
class TimeModel(models.Model): created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: abstract = True class Post(TimeModel): ~~~ class Comment(TimeModel): ~~~
TimeModel이 추상모델로써 두개의 모델 Post, Comment의 기반 모델이 된다.
여러개의 모델에 중복되는 필드가 존재할때, 추상모델을 사용하면 코드가 훨씬 깔끔해진다.
댓글
댓글 쓰기