Meta
Python에서 'Meta'클래스는 일반적으로 Django 프레임워크에서 models, forms, serializers, views 와 같은 클래스에 대한 추가 정보를 제공하는 데 사용합니다.
Meta 클래스는 Django 클래스에 대한 다양한 옵션과 구성을 지정하는 방법입니다.
Model에서의 Meta 클래스
Model 클래스에서 Meta 클래스는 다양한 방법으로 모델의 동작을 지정하는데 사용됩니다.
Model 클래스에서 Meta 클래스에서 주로 사용되는 옵션은 아래와 같습니다.
- 'db_table' : 모델에 사용할 DB 테이블 이름을 지정합니다. 지정하지 않으면 Django는 앱 이름과 모델 이름을 기반으로 테이블 이름을 자동으로 생성합니다.
- 'ordering' : QuerySet에 대한 기본 순서를 지정합니다. 예를 들어 아래의 코드는 'created_at' 필드를 기준으로 QuerySet를 내림차순으로 정렬합니다.
ordering = ['-created_at']
- 'unique_together' : 특정 필드 조합에 unique 제약 조건을 지정합니다. 예를 들어 아래의 코드처럼 'first_name'과 'last_name'가 모두 같지 않도록 unique 제약 조건을 지정할 수 있습니다. 즉, 두 명의 사용자가 동일한 '성과 이름 조합'을 가질 수 없도록 합니다. 다만, Django에서는 이 'unique_together' 방식을 제거하고 아래서 설명할 'UniqueConstraint' 방식을 권장합니다.
unique_together = [ ['first_name'], ['last_name'], ]
- 'UniqueConstraint' : Django 3.2부터 도입된 unique_together 옵션보다 더 유연한 방식의 메소드입니다. 'UniqueConstraint'에 관련한 글은 아래에 첨부하였습니다.
class Meta: constraints = [ models.UniqueConstraint( fields=[ 'first_name', 'last_name', ], name = 'unique_fields', ), ]
부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니다.
이 글에 부족한 부분이 존재할 경우 추후에 수정될 수 있습니다.
'Python > Django' 카테고리의 다른 글
FK 관계를 설정하는 방법 (0) | 2023.06.30 |
---|---|
(Django) reverse와 reverse_lazy 차이 (0) | 2023.06.23 |
Django로 비밀번호 유효성 검사 구현하기 (0) | 2023.06.17 |
UniqueConstraint 사용 예시 (0) | 2023.04.05 |
Django의 admin 패널에서 모델 등록하는 두가지 방법 (0) | 2023.03.16 |