Models - Meta Options
Metadata
데이터의 집합체로 다른 데이터에 대한 설명과 정보를 제공합니다
모델에 metadata 를 부여할수 있습니다. 클래스 안에 Meta 클래스를 사용해서 부여할수 있습니다.
아래 예시와 같이 모델 클래스 안에 부가적으로, Meta 클래스를 넣어서 metadata 를 넣을수 있습니다.
1 | from django.db import models |
필드가 아닌 무엇이든, 모델의 메타데이터가 될수 있습니다.
필드는, 메타 데이터가 될수 없습니.
정렬 옵션인 ordering,
데이터 베이스 테이블명, db_table
혹은 사람이 읽기 편한 단수와 복수 이름들인, verbose_name, verbose_name_plural
이런것들이 Meta 클래스안에 정의 될수 있습니다.
모델에 대한 class Meta 적용은 전적으로 선택 사항입니다.
Meta Option 에 가능한 모든 옵션들에 대해서는, model option reference 문서에서 보면 됩니다.
Meta option 리스트
메타 옵션에는 아래와 같은 항목들이 존재합니다.
모든 리스트를 확인하고 싶다면, https://docs.djangoproject.com/en/3.0/ref/models/options/
링크를 확인 하면 됩니다.
Meta Options | Function | Remarks |
---|---|---|
abstract | 모델이 abstract base class 가 됩니다 | abstract = True |
app_label | 모델이 INSTALLED_APPS 밖에 있는 어플리케이션에 존재할때에 선언합니다 | app_label = myapp |
base_manager_name | 메니저의 속성 이름을 지정합니다. 예를들면, objects | |
db_table | 해당 모델을 위한 데이터베이스 테이블 명을 지정합니다 | db_table = 'music_album' |
db_tablespace | 데이터베이스 테이블 스페이스의 이름 | |
default_manager_name | 해당 모델을 위해 사용할 메니저의 이름을 지정합니다 | |
default_related_name | 관련된 객체에서 역으로 접근할 이름을 지정합니다. 기본값은, 모델명_set 입니다 |
|
get_latest_by | 보편적으로 ,DateField, DateTimeField 혹은 IntegerField 같은 모델명에 사용합니다. | get_latest_by = “order_date”, get_latest_by = [‘-priority’, ‘order_date’] |