Django model中的 class Meta 详解_django class meta

Options.abstract

如果abstract=True,这个 model 就是一个抽象基类

app_label

Options.app_label

如果一个 model 定义在默认的models.py之外 (例如,如果你的 app 的 models 在myapp.models子模块下),你必须定义 app_label 让 Django 知道它属于哪一个 app

app_label=‘myapp’

db_table

Options.db_table

定义该 model 在数据中的表名称:

db_table=‘music_album’

数据库中的表名称

为了节省时间,Django 会自动的使用你的 model class 的名称和包含这个 model 的 app 名称来构建 数据库的表名称。一个 model 的数据库表名称是通过将 “app label” – 你在manage.pystartapp中使用的名称 – 和 model 的类名称,加上一个下划线在他们之间来构成。

例如,如果你有一个 app 叫做bookstore(使用manage.pystartappbookstore创建),以 及一个 model 定义为classBook这样将会创建一个名为bookstore_book的数据库表。

如果想自定义数据库的表名称,需要在classMeta使用db_table参数来自定义。

如果你的数据库表名称是一个SQL保留字,或者它包含不允许出现在 Python 变量中的字符 (比如连字 符)这是没问题的。这是因为 Django 会自动给列名和表名添加引号。

在 MySQL 中使用小写字母作为数据库表名称

强烈建议你在通过db_table重载数据库表名称时,使用小写字母,特别是当你在使用 MySQL 作为后台数据库时。查看MySQL notes了解更多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值