본문 바로가기
  • 기억보단 기록을..
Python/Django

[Django] models - class Meta

by reine94._.dev 2021. 1. 12.

models.py

DB 스키마 지정하는 파일


 

1. 다루게 될 내용

  • meta 내부 클래스 옵션
    • db_table 
    • verbose_name
    • verbose_name_plural
    • ordering

 

2. 샘플 코드

# models.py

class UserKeyword(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    kid = models.AutoField(primary_key=True)
    keyword = models.CharField(max_length=128, verbose_name="키워드", null=False)
    stop_words = models.CharField(max_length=128, verbose_name="제외어", null=True)
    rel_on = models.BooleanField(null=True, verbose_name="연관검색어")
    created_at = models.DateTimeField(auto_now_add=True, verbose_name="등록일")
    updated_at = models.DateTimeField(auto_now=True, verbose_name="수정일")

    objects = ModelManager()

    class Meta:
        db_table = "keyword"
        verbose_name = "키워드관리"
        verbose_name_plural = "2.키워드관리"
        ordering = ['-kid', '-created_at']

 

  • db_table
    • 연동된 DB에 migrate 될 때 테이블이름이 된다. ( default : 클래스이름 )
  • verbose_name
    • admin 상세 페이지에서 보여주는 필드(컬럼)명이 된다.
  • verbose_name_plural
    • admin 일반 페이지에서 보여지게 되는 이름이 된다.
    • 지정하지 않으면 verbose_name에서 s가 붙어서 생성된다.
  • ordering
    • admin 페이지내에서 보여지는 테이블 데이터를 정렬한다.
    • - 가 붙으면 내림차순 (최신순)

 

admin 페이지에서 확인하는 내용이 될테니 당연히

admin.py 에서 모델(테이블)을 등록해줘야한다.
admin.site.register(UserKeyword)

 

3. 참고 내용

wikidocs.net/6667

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

댓글