1. 程式人生 > >Django 2.1.3 文件 模型層 Meta選項

Django 2.1.3 文件 模型層 Meta選項

模型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 注意事項。↑