Django模型類的Meta是一個內部類,它用於定義一些Django模型類的行爲特性。使用方法及參數解釋以下:git
class Book(models.Model): nid=models.AutoField(primary_key=True) title=models.CharField(max_length=32) price = models.DecimalField(max_digits=5, decimal_places=2) def __str__(self): return self.title class Meta: app_label = "app02" db_table = "book" unique_together = ["title", "price"] verbose_name = "書籍" ordering = ["price"]
這個選項只在一種狀況下使用,就是你的模型類不在默認的應用程序包下的models.py文件中,這時候須要指定你這個模型類是哪一個應用程序的。數據庫
若是一個model沒有定義在默認的models.py,例如若是你的app的models在myapp.models子模塊下,你必須定義app_label讓Django知道它屬於哪個app,以下:django
app_label = 'myapp'
db_table是指定自定義數據庫表名的。app
爲了節省時間,Django有一套默認的按照必定規則(應用名_模型類名小寫)生成數據模型對應的數據庫表名。咱們能夠經過db_table自定義該model在數據庫中的表名稱,以下:spa
db_table = 'mytable'
對象的默認順序,用於獲取對象列表時。code
其值是一個元組或字符串和/或查詢表達式列表。每一個字符串都是一個帶有可選「 - 」前綴的字段名稱,表示降序。沒有前導「 - 」的字段將按升序排序。對象
ordering = ['pub_date'] # 表示要按pub_date字段升序排序 ordering = ['-pub_date'] # 要按pub_date降序排序 ordering = ['-pub_date', 'author'] ?# 要按pub_date降序排序,而後按author升序排序
表示約束聯合惟一字段,即一塊兒使用的字段名稱集必須是惟一的。blog
對象的可讀名稱,單數,若是沒有給出,Django將使用類名小寫:即CamelCase變爲camelcase。排序
更多Meta信息參見Django文檔:https://docs.djangoproject.com/zh-hans/2.0/ref/models/options/ci