先上結論:當使用manage.py inspectdb [table_name]自動生成models.py內容,如果數據庫表中列包含大寫字母,會被自動轉換成小寫字母。
比如最近在做一個project,使用Django自帶的模板對象來插入數據,本來應該非常非常簡單纔對,比如下面這樣:
ModelObject( #...
AAA='test',
#...
).save()
卻總是報錯:
TypeError: 'AAA' is an invalid keyword argument for this function
原因就是我的數據庫表中,這一列確實叫AAA,但是在models.py是‘aaa’。當使用manage.py inspectdb 自動轉換時,就可能出現這樣的問題。
一個細小的問題,不過也錯了一次以上了,調試挺費時間,就記錄在這裏吧。