Django 的 Meta 元数据选项指的是『除了字段外的所有内容』,例如排序方式、数据库表名、人类可读的单数或者复数名等等。所有的这些都是非必须的,甚至元数据本身对模型也是非必须的。
在模型中增加元数据,需要在模型类中添加一个子类,名字是固定的Meta,然后在这个Meta类下面增加各种元数据选项。
class ModelName(models.Model): ColName = models.CharField(maxlength=30) class Meta: # 进行设置具体的参数 ......
用于构建抽象类,设置 abstract = True 则对设置的 model 类不会生成对应的数据表单,智能够进行继承和重新方法的使用。
abstract = True
用于定义对应 models 的属于的应用app,默认不需要修改。
用于定义 models 的管理器属性名称,默认不需要修改。
用于定义 models 对应的数据库表单名称,默认不需要修改。
需要重新定义该 models 的名称则进行自定义的设置。
db_table = 'table_name'table_name = 'table_name'
用于定义 models 是否支持默认空间表单,默认不需要修改。
用于定义 models 的模型管理名称,默认不需要修改。
用于定义 models 的模型关联对象使用名称,默认不需要修改。
用于定义 models 的模型数据排列顺序,如果字段类型属于 DateField, DateTimeField 显示的首条记录是最后更新的数据记录。
get_latest_by = "order_date"get_latest_by = ['-order_time', 'order_date']
用于定义 models 模型在执行 shell 命名使用迁移命令时候是否迁移数据库。
cmd 命令执行数据库迁移。
python manage.py migrate
managed 管理。
managed=True # 默认迁移managed=False # 设置不迁移
用于定义 models 表单中默认的排序,默认不需要修改。
用于定义 models 表单中指定字段的排列顺序。
ordering = ['order_date'] # order_date 升序排列ordering = ['-order_date'] # order_date 降序排列
也可以进行多列字段的排序。
ordering = ['order_date','col_name']
用于定义 models 船舰对象权限表单的额外权限,对数据表单的增删改查 (add、change、delete、view)会自动分配到每个model中。
用于定义 models 中操作表单的默认权限,默认不需要修改。
default_permissions = ('add', 'change', 'delete', 'view')
用于定义 models 使用使用继承,默认不需要修改。
proxy = True
用于定义 models 依赖数据库的功能,默认不需要修改。
required_db_features = ['gis_enabled'] # 依赖Gis功能
用于定义 models 支持数据库的类型,默认不需要修改。
required_db_vendor = ['sqlite', 'postgresql', 'mysql', 'oracle']
Django 默认的数据保存算法,默认不需要修改。
django.db.models.Model.save()
用于定义 models 模型索引的列表。
indexes = [ models.Index(fields= [ 'col_name_1', 'col_name_2' ]), models.Index(fields= [ 'col_name_1' ], name='col_name_1_idx'),]
用于定义 models 模型字段内容组合唯一使用。
unique_together = [ ['col_name_1', 'col_name_2']]
用于定义 models 模型使用索引的字段。
index_together = [ ["col_name_1", "col_name_2"],]
用于定义 models 模型字段内容的约束,相当于 filter 提前过滤。
constraints = [ models.CheckConstraint(check=models.Q(age__gte=18),name='age_gte_18'),]
用于定义 models 模型重新定义一个名字(单数形式)。
verbose_name = "自定义名称"
用于定义 models 模型重新定义一个名字(复数形式)。
verbose_name_plural= "自定义名称"
留言与评论(共有 0 条评论) “” |