메타 데이터는 다른 데이터에 대한 정보를 제공하는 특정 데이터 집합을 나타냅니다.
Django에서는 Django 모델을 사용하여 데이터베이스의 테이블과 해당 필드를 설계합니다.
모델 자체에 대한 데이터를 추가해야하는 경우Meta클래스를 사용합니다.
이 기사에서 Django 모델의Meta클래스에 대해 자세히 알아보십시오.
Django의 Meta클래스
Meta클래스는 inner 클래스입니다.
즉, 다음과 같이 모델 내부에 정의됩니다.
from django.db import models
class MyModel(models.Model):
...
class Meta:
...
Meta클래스는 권한, 데이터베이스 이름, 단 복수 이름, 추상화, 순서 지정 등과 같은
모델에 대한 다양한 사항을 정의하는 데 사용할 수 있습니다.
Django 모델에Meta클래스를 추가하는 것은 전적으로 선택 사항입니다.
이 클래스에는 구성 할 수있는 많은 옵션도 제공됩니다.
다음은 일반적으로 사용되는 몇 가지 메타 옵션입니다. 여기에서 모든 메타 옵션을 탐색 할 수 있습니다.
1. Django 메타 옵션 - Abstract
이 옵션은 모델이 추상적인지 여부를 정의하는 데 사용됩니다. 추상 클래스와 동일하게 작동합니다.
추상 클래스는 인스턴스화 할 수없고 확장 또는 상속 만 가능한 클래스입니다.
추상으로 설정된 모델은 상속만 가능합니다.
공통 필드가있는 여러 모델이있는 경우이 옵션을 사용할 수 있습니다.
from django.db import models
class Human(models.Model):
genders = (
("M", "Male"),
("F", "Female"),
("NB", "Non-binary"),
("T", "Transgender"),
("I", "Intersex"),
("O", "Other"),
("PNTS", "Prefer not to say")
)
name = models.CharField(max_length = 200)
age = models.IntegerField(default = 0)
gender = models.CharField(max_length = 50, choices = genders)
class Meta:
abstract = True # Important
class Teacher(Human):
subject = models.CharField(max_length = 200)
class Student(Human):
grade = models.IntegerField(default = 0)
여기에서 선생님 및 학생 모델은 Human 모델 내부에 모든 필드가 있습니다.
데이터베이스 내에는Teacher 및 Student 모델 만 생성됩니다.
2. Django 메타 옵션 - db_table
이 옵션은 데이터베이스 내에서
테이블을 식별하는 데 사용해야하는 이름을 설정하는 데 사용됩니다.
예를 들어 다음과 같은 작업을 수행하면 데이터베이스에서 모델 이름이 job이됩니다.
from django.db import models
class JobPosting(models.Model):
class Meta:
db_table = "job"
3. Django 메타 옵션 - Ordering
이 옵션은 모델 필드 인 문자열 값 목록을 사용합니다. 모델 객체의 순서를 정의하는 데 사용됩니다.
이 모델의 개체가 검색되면이 순서대로 표시됩니다.
from django.db import models
class JobPosting(models.Model):
dateTimeOfPosting = models.DateTimeField(auto_now_add = True)
class Meta:
ordering = ["-dateTimeOfPosting"]
위의 예에서 검색된 개체는dateTimeOfPosting필드를 기준으로 내림차순으로 정렬됩니다.
(-접두사는 내림차순을 정의하는 데 사용됩니다.)
4. Django 메타 옵션 - verbose_name
이 옵션은 사람이 읽을 수있는 모델의 단일 이름을 정의하는 데 사용되며
Django의 기본 명명 규칙을 덮어 씁니다.
이 이름은 관리자 패널 (/admin/)에도 반영됩니다.
from django.db import models
class JobPosting(models.Model):
class Meta:
verbose_name = "Job Posting"
5. Django 메타 옵션 - Verbose name plural
이 옵션은 모델에 대해 사람이 읽을 수있는 복수형 이름을 정의하는 데 사용되며
다시 Django의 기본 명명 규칙을 덮어 씁니다. 이 이름은 관리자 패널 (/admin/)에도 반영됩니다.
from django.db import models
class JobPosting(models.Model):
class Meta:
verbose_name_plural = "Job Postings"
출처
https://www.delftstack.com/howto/django/class-meta-in-django/
'Django > project' 카테고리의 다른 글
[DRF] 직렬화(Serializer)에 대해서 알아보자 (0) | 2022.01.25 |
---|---|
[Git] Git branch 주요 명령어 정리 (2) (0) | 2022.01.25 |
[Git] Git branch 주요 명령어 정리 (1) (0) | 2022.01.25 |
[project] verbose_name, related_name ? (0) | 2022.01.24 |