Computer Programming/AI

TIL_DRF에서 Meta class란?

JYCoder 2023. 9. 27. 20:07

Django project를 배우던 중, serializers.py에서 'Meta class'라는 것이 등장했다.

모양은 아래와 같이 class 안에 Meta class가 들어가 있다.

왜 class 안에 또 다른 class를 정의했을까? Meta class를 쓰는 이유에 대해 알아보았다.

class ArticleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Article
        fields = '__all__'

 

Meta Class in Django

Meta class는 django에서 model class (또는 serializer class) 안에서 정의되고, 해당 model (또는 serializer)에 대한 추가적인 data와 설정을 제어하는 데 사용된다. Meta class를 사용하면 model을 더욱 정교하게 제어하고, database와의 상호 작용을 조절할 수 있으며, Django의 기능을 확장하는 데 도움이 된다.

 

 

Meta class의 역할과 기능

  • database table 이름 지정
  • 정렬 순서 지정
  • 권한 설정
  • index 및 고유 제약 조건 설정
  • 추가 옵션 설정
  • 추가 동작 및 기능 활성화

 

정리하면, Meta class는 Djago class 안에 있는 특별한 class로, 해당 metadata와 설정을 담는 곳이다. 예를 들어, database table 이름, 정렬 순서, 권한, 고유 제약 조건 등을 설정할 때 사용된다. 따라서 meta class는 model(또는 serializer)의 '설정 부분'이라고 할 수 있다.

 

 

Meta class에 들어갈 수 있는 몇 가지 예시들

ordering = ['no']    # 오름차순

ordering - ['-no']    # 내림차순

db_table = 'mypost'    # db_table 이름 변경

verbose_name = 'article'    # 단수형

verbose_name_plural = 'articles'    # 복수형

 

LIST

'Computer Programming > AI' 카테고리의 다른 글

TIL_JWT(JSON Web Token)  (0) 2023.10.04
TIL_HTTP, HTTPS, SSH란?  (0) 2023.10.02
TIL_Django REST Framework Project, blog 만들기(1)  (0) 2023.09.26
TIL_Django Basics, Migration  (0) 2023.09.25
WIL_일곱 번째 주  (0) 2023.09.22