Day47-Django의 class Meta 지식 포인트

1852 단어
이번 주부터 반독립적인 Django건역 프로젝트를 진행하는데 이 과정에서 배운 것을 복습 연습하는 셈이다.그 사이에 몇 가지 작은 지식을 만났는데, 이전에는 잘 몰랐는데, 오늘은 기본적으로 분명히 해야 한다.
오늘은 Django에서 모델의class Meta를 살펴볼게요.
class Main(models.Model):
    img = models.CharField(max_length=200) #   
    name = models.CharField(max_length=100) #   
    trackid = models.CharField(max_length=16) #   id

    class Meta:
        abstract = True        #   
class MainWheel(Main):
    #   banner
    class Meta:
        db_table = 'axf_wheel'
class Publisher(models.Model):
    name = models.CharField(max_length=30)
    address = models.CharField(max_length=50)
    city = models.CharField(max_length=60)
    state_province = models.CharField(max_length=30)
    country = models.CharField(max_length=50)
    website = models.URLField()

    class Meta:
        ordering = ['order_date']
        #        

위의 세 가지 class Meta는 일반적으로 사용되는 제품이기 때문에 대충 살펴보겠습니다.몇 가지 자료를 조사해서야 겨우 알아냈다.우선class Meta는 플러그인 클래스로 상급 클래스에 기능을 추가하거나 기준을 지정하는 것이 목적이다.
예를 들어 첫 번째 abstract=True라는 동동은 계승을 위해 이 기류를 추상적인 클래스로 정의했다. 즉, 데이터베이스 폼을 생성할 필요가 없고 계승할 수 있는 기류로서 일부 자류에 필요한 코드를 기류에 넣고 중복 코드도 데이터베이스에 중복되지 않도록 한다.대충 이런 뜻이죠?
그리고 예를 들면dbtable='xxxx'라는 동동이 더 간단한데 사실은 이 종류의 데이터베이스 폼 이름을 지정하는 것이다.물론 지정하지 않아도 상관없습니다. Django는 자동으로 일정한 규칙에 따라 데이터 모델에 대응하는 데이터베이스 테이블 이름을 생성합니다.네 마음에 들지 않는다면 인연에 달려 있기 때문에 스스로 지정하는 것이 좋다.
또한ordering='xxxxx'는 지정된 필드에 따라 데이터베이스를 정렬하는 것을 나타낸다.주로 보기 좋게 찾기 위해서다.너는 임의의 폼 이름이나 내용을 지정할 수 있으며 데이터베이스가 생성된 후에 지정한 열에 따라 정렬할 수 있다.승차순, 강차순 랜덤으로 할 수도 있어.
사실 상기 세 가지 Django에서 모델 플러그인 클래스의 메타데이터 정의는 모두 적지 않은 지식점과 다양한 선택과 용법을 포함한다.심지어 이런 플러그인류에는 십여 가지 다른 메타데이터 정의 방법이 있는데 정말 연구하려면 어지러워 죽을 지경이다.다행히 필요한 옵션이 하나도 없다.모델에 class Meta를 추가할 지 여부는 선택할 수 있습니다.나중에 뭘 쓸지 다시 알아봐, 너무 복잡해.나는 공부를 잘하지 못하니 가능한 한 닥치는 대로 알아라.

좋은 웹페이지 즐겨찾기