教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

Django模型的元属性是做什么用的?

更新时间:2023年01月11日14时08分 来源:传智教育 浏览次数:

好口碑IT培训

  Django模型的元属性用于设置数据表的一些属性,例如排序字段、数据表名、字段单复数等。通过在模型类中添加内部类Meta的方式可以定义模型的元属性。例如,在模型类BookInfo中设置数据表名称,代码如下:

class BookInfo(model.Model):
    ...              # 定义的字段
    class Meta:
        db_table = 'tb_bookinfo'

  以上代码在Meta中通过db_table属性设置数据名为“tb_bookinfo”。

  除db_table元属性外,Django还提供了十几种元属性,接下来对常用的元属性进行介绍。

  1.abstract

  用于设置模型是否为抽象类,若abstract=True,则表示模型是抽象类。抽象类用来定义多个模型类的共有信息,在Meta类中设置abstract=True,这个模型不能被实例化,只能作为其他类型的基类。

  2.app_label

  如果定义的模型没有在配置文件的INSTALLED_APPS项中注册,那么必须使用app_label选项在Meta类中指明当前模型所属的应用。

  3.ordering

  ordering属性用于设置模型字段的排序方式,该属性默认按照升序排序,取值可以是由字段名组成的元组或列表。例如,在BookInfo类中使用ordering属性设置数据表按id字段升序排序,代码如下:

ordering = 'id'

  如果想设置数据表按某个字段降序排序,可在字段前加“-”符号。示例如下:

ordering = ['-id']

  如果ordering中存在多个字段,默认优先按照第一个字段进行排序,如果第一个字段无法为记录排序,则再根据第二个字段进行排序。示例如下:

ordering = ['id','score']

  上述示例表示优先按照“id”进行升序排序,如果只根据“id”无法为记录排序,再根据“score”进行升序排序。

  4.verbose_name

  元属性verbose_name用于设置显示在后台管理系统页面上的、直观可读的数据表名。示例如下:

verbose_name = "book"
verbose_name = "图书"

  5.verbose_name_plural

  元属性verbose_name_plural用于设置模型类在后台管理系统页面上显示的表名的复数形式。示例如下:

verbose_name_plural = "books"

  如果没有指定verbose_name_plural,那么默认以verbose_name加上“s”作为复数形式。例如,verbose_name值为book,那么模型类名的复数形式为books。

0 分享到:
和我们在线交谈!