ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • class Meta
    Backend/Django 2023. 9. 18. 18:32

    class Meta

    django Model에 metadata를 추가하는 기능을 제공. (metadata: 데이터를 설명하는 데이터, 또는 데이터를 목적에 따라 재구성한 데이터)

     

    사용자가 직접 추가하는 Model의 속성(필드)은 매 번 바뀔 수밖에 없다. 그러나 Model의 속성들을 '정렬(ordering)' 하거나, 'DB Table의 이름(db_table)'을 짓거나 어떤 속성의 '복수형 표현(verbose_name, verbose_name_plural)'을 지정하거나 하는 등 일부 사용법들은 대부분의 Model에서 필요하다.

    이처럼 Model을 관리할 때 공통적으로 필요한 사용법들의 구체적인 방식을 지정하도록 해주는 것이 class Meta이다. (..라고 나는 이해했다.)

     

    자주 쓰이는 Meta options

    ordering: Model 객체의 리스트를 가져올 때, 그 리스트 요소들의 정렬 기준.

    ordering = ["field_name1", "field_name2"] 	# field_name은 Model 에 이미 선언된 변수명(속성)
    						# 역순으로 정렬할 때에는 하이픈('-')을 앞에 붙여주면 된다. -field_name

    ordering 의 값으로는 튜플, 리스트, 문자열, query 표현식 이 올 수 있다.

     

    db_table: DB Table 생성 시 붙일 이름.

     

    verbose_name: Model 객체의 단수형을 의미하는 문자열. default는 CamelCase를 따르는 Model 클래스 이름을 camel case 처럼 자동으로 변환한 값. ex) class Fruit -> 기본 verbose_name : fruit

     

    vervose_name_plural: Model 객체의 복수형을 의미하는 문자열. default는 verbose_name + 's' 형태

    댓글

Designed by Tistory.