Django 2.1.3 文件 模型層 Meta選項
阿新 • • 發佈:2018-12-02
模型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 注意事項。↑