django模型中使用Meta类表示模型的元数据,所谓元数据即是除了字段意外的数据。
已经用到过的Meta主要选项,其他选项用到了再做补充:
一、ordering选项
- 用于对查询结果对象排序;
- ordering的值可以是一个元组/列表,或者查询表达式,其中每一个字符串是模型中的一个字段,默认是升序排列,字段前面加上'-'表示降序排列,如果是"?"表示随机排列:
ordering=['index']
ordering=['-index']
ordering = ['-pub_date', 'author']
也可以用查询表达式,按作者升序排序,并使空值最后排序:
from django.db.models import F
ordering = [F('author').asc(nulls_last=True)]
注意:当在视图中同时使用了order_by字段进行排序后,会以order_by的结果为准(相当于是重写了排序规则)
二、db_table选项
表示数据库中存的表的名称,数据库中默认的表名称app名称_模型名称小写:
指定数据库名称以后:
三、verbose_name、verbose_name_plural(单、复数)选项
admin后台展示数据库名称展现形式:没有指定时,默认显示名称为模型类的名称;指定了verbose_name后,按照指定的显示
四、abstract选项
当在Meta中指定了abstract=true时,表明该模型类是抽象的基类,不会生成数据库表,不能被保存和实例化;当被其他模型类继承后,对应模型将拥有该基类的字段;
基类的字段继承后,可以重写字段值
五、app_lable选项
模型在INSTALLED_APPS中的应用程序外部定义,它必须声明属于哪个应用程序
app_label = 'myapp