不乱于心,不困于情。
不畏将来,不念过往。如此,安好。

Django model中Class Mate解释

本文介绍配置 Django 元数据 Meta 选项,以及相关参数说明。

定义方式
class ModelName(models.Model):
ColName = models.CharField(maxlength=30)
class Meta:
…… # 具体使用参数

参数说明

1.abstract

# 是否构建抽象类
# abstract = True,则该对应的Class ModelName不会生成数据表单
# 也无法直接使用,只能通过继承、重写的的方式使用

2.app_label

# 用于定义该Class ModelName属于哪个应用app,默认即可

3.base_manager_name

# 用于定义该Class ModelName管理器的属性名,默认即可

4.db_table

# 用于定义该Class ModelName对应生成在数据库中的表名,默认即可
db_table = 'table_name'
table_name = 'table_name'

5.db_tablespace

# 用于定义该Class ModelName是否支持表空间,默认即可

6.default_manager_name

# 用于定义该Class ModelName模型名称管理,默认即可

 

7.default_related_name

# 用于定义该Class ModelName模型关联对象的名称使用,默认即可

8.get_latest_by

# 用于定义该Class ModelName模型
# 若字段类型是DateField, DateTimeField时候显示最后显示的第一条记录是最近一条记录,同倒序排列

get_latest_by = "order_date"

get_latest_by = ['-order_time', 'order_date']

9.managed

# 用于定义该Class ModelName模型在执行shell命令
# shell命令使用 python manage.py migrate
# 是否进行数据库迁移使用,默认True,如果不想迁移改False,默认即可。

10.order_with_respect_to

# 用于定义该Class ModelName模型中多对多关联中排序使用,默认即可

11.ordering

# 用于定义该Class ModelName模型中某字段的排序
ordering = ['order_date'] # 升序
ordering = ['-order_date'] # 倒序

12.permissions

# 用于定义该Class ModelName创建对象时权限表中额外的权限
# 增加、删除和修改权限会自动为每个模型创建

13.default_permissions

# 用于定义该Class ModelName默认的许可。
# 默认值: ('add', 'change', 'delete', 'view')

14.proxy

# 用于定义该Class ModelName是否使用代理
# 常用于多表继承,默认即可

 

15.required_db_features

# 用于定义该Class ModelName依赖数据库的功能,默认即可
required_db_features = [‘gis_enabled’] # 依赖Gis功能

16.required_db_vendor

# 用于定义该Class ModelName支持数据库的类型,默认即可
# 默认值:['sqlite', 'postgresql', 'mysql', 'oracle']

17.select_on_save

# 老版本用于保存使用,默认即可
django.db.models.Model.save()

18.indexes

# 用于定义该Class ModelName模型索引的列表
indexes = [
models.Index(fields= [ 'col_name_1', 'col_name_2' ]),
models.Index(fields= [ 'col_name_1' ], name='col_name_1_idx'),
]

19.unique_together

# 用于定义该Class ModelName模型字段内容组合唯一使用
unique_together = [
['col_name_1', 'col_name_2']
]

20.index_together

# 用于定义该Class ModelName模型使用索引的字段
index_together = [
["col_name_1", "col_name_2"],
]

21.constraints

# 用于定义该Class ModelName模型字段内容的约束
# 相当于filter提前过滤
constraints = [
models.CheckConstraint(check=models.Q(age__gte=18),name='age_gte_18'),
]

22.verbose_name

# 用于定义该Class ModelName模型重新定义一个名字(单数形式)
verbose_name = "自定义名称"

23.verbose_name_plural

# 用于定义该Class ModelName模型重新定义一个名字(复数形式)
verbose_name_plural= "自定义名称"

赞(0) 打赏
未经允许不得转载:seo优化_前端开发_渗透技术 » Django model中Class Mate解释

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏