Django Meta 내부 클래스 옵션

4197 단어 djangometa
Django 모델 클래스의 메타는 일부 Django 모델 클래스의 동작 특성을 정의하는 내부 클래스입니다.다음은 이것에 대해 총괄한다. abstract라는 속성은 현재의 모델 클래스가 추상적인 클래스인지 정의하는 것이다.이른바 추상류는 데이터베이스 테이블에 대응하지 않는다.일반적으로 우리는 그것으로 일부 공공 속성 필드를 귀납한 다음에 그 하위 클래스를 계승하면 이 필드를 계승할 수 있다.예를 들어 다음 코드에서 Human은 추상적인 클래스이다. Employee는 Human의 하위 클래스를 계승한 것이고syncdb 명령을 실행할 때 Human표를 생성하지 않지만 Employee표를 생성할 것이다. 이것은 Human이 계승한 필드를 포함하고 나중에 Customer 모델 클래스를 추가하면 Human의 공공 속성을 똑같이 계승할 수 있다.
lass Human(models.Model):
    name=models.CharField(max_length=100)
    GENDER_CHOICE=((u'M',u'Male'),(u'F',u'Female'),)
    gender=models.CharField(max_length=2,choices=GENDER_CHOICE,null=True)
    class Meta:
        abstract=True
class Employee(Human):
    joint_date=models.DateField()
class Customer(Human):
    first_name=models.CharField(max_length=100)
    birth_day=models.DateField()

위의 코드에서 Python 관리자를 실행합니다.py syncdb 이후의 출력 결과를 입력하면 Human 테이블이 생성되지 않았음을 알 수 있습니다: $python 관리자.py syncdb Creating tables … Creating table myapp_employee Creating table myapp_customer Installing custom SQL … Installing indexes … No fixtures found.
app_label app_label 이 옵션은 기본 프로그램 패키지에 없는 모델 종류를 한 가지 상황에서만 사용합니다.py 파일에서 이 모델 클래스가 그 응용 프로그램의 것인지 지정해야 합니다.예를 들어 다른 곳에 모델 클래스를 썼는데 이 모델 클래스는 myapp에 속한다. 그러면 다음과 같이 지정해야 한다. applabel=’myapp’
db_table db_테이블은 사용자 정의 데이터베이스 테이블 이름을 지정하는 데 사용됩니다.Django는 기본적으로 일정한 규칙에 따라 데이터 모델에 대응하는 데이터베이스 테이블 이름을 생성하고 사용자 정의 테이블 이름을 사용하려면 이 속성을 통해 지정합니다. 예를 들어:
table_name='my_owner_table'

db_tablespace
일부 데이터베이스에는 Oracle 같은 데이터베이스 테이블 공간이 있습니다.너는db 를 통과할 수 있다tablespace는 이 모델에 대응하는 데이터베이스 테이블을 어느 데이터베이스 테이블 공간에 두는지 지정합니다.
get_latest_by Django의 관리 방법 중lastest () 방법이 있기 때문에 최근 줄의 기록을 얻습니다.데이터 모델에 DateField 또는 DateTimeField 형식의 필드가 있다면, 이 옵션을 통해lastest () 가 어느 필드로 선택되었는지 지정할 수 있습니다.
매니지먼트는 모델 클래스에 따라 매핑된 데이터베이스 테이블을 자동으로 생성하기 때문에 매니지먼트의 값을 False로 설정할 수 있습니다.
order_with_respect_to 이 옵션은 일반적으로 여러 쌍의 관계에 사용되며, 이것은 관련 대상을 가리킨다.그러니까 연관된 대상이 이 대상을 찾으면 정렬을 거친다는 거야.이 속성을 지정하면 get 하나를 얻을 수 있습니다XXX_order() 및 setXXX_order () 방법은 그것들을 통해 정렬된 대상을 설정하거나 되돌릴 수 있습니다.
ordering 이 필드는 Django 모델 대상이 되돌아오는 기록 결과 집합이 어느 필드에 따라 정렬되었는지 알려 줍니다.예를 들어 다음 코드:
ordering=['order_date'] #        
ordering=['-order_date'] #        ,-    
ordering=['?order_date'] #     ,?    

permissions permissions는 주로 Django Admin 관리 모듈에서 사용하기 위해서입니다. 이 속성을 설정하면 지정한 방법의 권한 설명을 더욱 명확하게 읽을 수 있습니다.
proxy 이것은 프록시 모델을 실현하기 위해 사용하는 것입니다. 다음 글은 설명하지 않겠습니다.
unique_together unique_together 이 옵션은: 두 필드를 통해 유일성을 유지해야 할 때 사용합니다.예를 들어 Person의FirstName과 LastName 둘의 조합이 유일해야 한다고 가정하면 다음과 같은 설정이 필요합니다.
unique_together = (("first_name", "last_name"),)

verbose_name verbose_name의 뜻은 매우 간단하다. 바로 당신의 모델 클래스에 더 읽을 수 있는 이름을 지어주는 것이다. verbose_name = "pizza"verbose_name_plural 이 옵션은 모델의 복수 형식이 무엇인지 지정합니다. 예를 들어 verbose_name_plural = "stories" Django를 지정하지 않으면 자동으로 모델 이름 뒤에 's' 를 추가합니다.
기사 출처:http://www.onepub.net/2012/02/02/django-meta%E5%86%85%E9%83%A8%E7%B1%BB%E9%80%89%E9%A1%B9/

좋은 웹페이지 즐겨찾기