django模型中的meta选项整理

django模型中使用Meta类表示模型的元数据,所谓元数据即是除了字段意外的数据。

已经用到过的Meta主要选项,其他选项用到了再做补充:

一、ordering选项

  1. 用于对查询结果对象排序;
  2. 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

原文地址:https://www.cnblogs.com/Xiaojiangzi/p/13082856.html