通过一个内嵌类Meta来定义元数据元数据又被称为中介数据用于描述数据得数据|简单地讲, Meta就是通过属性来描述model]对象为其提供额外得功能
●cbstract
将当前模型类转换成抽象类当进行migrate的时候会被忽略
|因为migrate是对实体表进行修改 而抽象是一个虚的概念 所以不存在实体
●app_labe1
指定当前model从属于哪个已经注册的应用
使用场景一般为应用只编写视图层来处理业务逻辑.模型层统-由- 个models模块来管理,所以要区分所属应用
●db_ _table
自定义表名,如果不指定表名则默认为应间名模型行
第-种使用情况为目标表已经存在
第二种为开发没有管理表的权限需要dba建表冉开发.
第三种为规范数据库的表名命名,而不是使用diango默认的命名规范
●managed
默认为True,如果为False,当前migrate会忽略该模型.
。虽然设置了managed为False. 但是如果没有主键的化依然会自动创建主键.
很多公司都会由专人DBA来管理数据库.独立开发流程:创建模型-> migrate
公司合作开发流程: dba建表>创建模型
managed= False
● ordering
设置排序字段,默认排序规则为升序。-表示降序
ordering = ['-order ,date ']
ordering = ['-pub. _date', " author']
。?表示随机的意思ordering = ['?']
●get_lastest. by --设置获取最后一条记录的排序规则
实例方法·获取最新记录
get_lastest_by = ['id']
item = mode1.objects.latest0
●indexes 设置索引(一般没用)
class Meta:
indexes = [
nodels.Index(fie]ds=['last_ name'. 'first_ name"]),
mode1s. Index[fields=['first. name'],nane='first. name_ idx'],]
●unique together多字段唯-性约束
unique_ together = ("driver", "rest surant ")