Django 2.1.3 文档 模型层 Meta选项


慢慢补充

本文档介绍了可以在class Meta内部为模型提供的所有可能的元数据选项。

1. 可用 Meta选项

1.1 db_table

用于模型在数据库中表的名称:

db_table = 'self_table_name'

1.1.1 表名

为了节省您的时间,Django会自动从模型类的名称和包含它的应用程序中派生数据库表的名称。模型的数据库表名称是通过将模型的“应用程序标签”(您在manage.py startapp中使用的名称)加入模型的类名称,并在它们之间加下划线来构建的。

例如,如果您有一个应用程序bookstore(由创建者使用manage.py startapp bookstore创建 ),则定义为class Book的模型将具有名为bookstore_book的数据库表。

要覆盖数据库表名,请在class Meta内使用db_table参数覆盖 。

如果您的数据库表名是SQL保留字,或者包含Python变量名中不允许的字符 - 特别是连字符 - 没问题。Django在幕后用引号引起了了列名和表名(译者注:别给自己找麻烦)。

为MySQL使用小写表名

强烈建议您在覆盖表名时使用小写表名,特别是在使用MySQL后端时。有关更多详细信息,请参阅 MySQL注意事项。↑

Oracle的表名称引用

为了满足Oracle对表名的限制(30个字符),并且符合Oracle数据库的常规约定,Django可能会缩短表名并将它们全部大写。要阻止此类转换,请使用带引号的名称作为db_table的值:

db_table = '"name_left_in_lowercase"'
这些引用的名称也可以与Django其他支持的数据库后端一起使用; 但是,除了Oracle之外,引号都没有效果。有关更多详细信息,请参阅 Oracle 注意事项。↑

猜你喜欢

转载自blog.csdn.net/lengfengyuyu/article/details/84667039