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