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' # 복수형
'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 |