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了解更多