본문 바로가기

Django

(2)
[Django] Django model에 InheritanceManager 적용하기 데이터베이스 테이블이 많아지고 상속이 빈번해지는 등 각 테이블 간의 관계가 복잡해지면서, 상속 관계에 있는 모델들을 복잡하지 않게 관리하고자 하는 요구 사항이 생겼다. (회사 코드를 가져올 수는 없어서 비슷한 예시로 대체한다.) 예를 들어서, 아래와 같은 관계의 모델이 있다고 해보자. 차라는 부모 클래스를 휘발유 차와 전기 차라는 자식 클래스가 상속하고 있는 형태이다. 코드로 나타내면 다음과 같이 작성될거다. from django.db import models class Car(models.Model): car_id = models.AutoField(primary_key = True) car_nickname = models.CharField(verbose_name = "별명") class Gasoline..
[Django] Django Model 상속 알아보기 회사에서 django를 다루면서, ORM을 공부할 일이 정말 많다. 그 중에서도 특히 model 상속과 관련된 부분을 따로 정리해보려고 한다. 1. 추상 기본 클래스 (Abstract Base Class) 추상 기본 클래스는 여러 다른 모델이 공통된 필드를 가지고 있어서, 해당 필드들을 여러번 반복해서 작성하는 비효율이 발생할 때 유용하다. 예를 들어서, 어느 대학교에 다니는 대학생들은 이름, 학번 등의 공통된 필드를 가지고 있고 과별로 졸업을 위해서 필요한 요건이 다르다. 이런 경우에 모델을 각각 생성해주려면 아래와 같은 형태가 될 것이다. from django.db import models class EducationStudent(models.Model): name = models.CharField(..