2016-03-01 39 views
0

我想更改Django1.9上的數據庫表名。我知道我們可以用「db_table」來改變標準問題。我可以在Django上自動更改數據庫表名稱嗎?

Class Foo_Bar: 

    class Meta: 
     db_table = "foo_bar" 

但我需要寫在每一個班,它是很累。 我想讓Django自動創建一個名稱爲小寫的類名的表。 但我不知道該怎麼辦。

我甚至試過用

self.__class__.name__.lower() 

,但我不知道怎麼的Meta效果很好。

任何建議是有幫助的。

謝謝。

+2

「我想Django的創建一個表,其名稱是較低自動加載類名「<<< Django以小寫字母」appname_modelname「自動執行。我認爲你不能輕易改變這一點。因此添加「db_table」是唯一的方法。 – somecallitblues

+0

感謝您的建議。首先,我嘗試使用 __class .__ name__ ,但我不知道Meta是什麼,所以我不能使用它。 – yamachan

+0

啊,我不能在這裏寫出魔法。 – yamachan

回答

1

一個非常劈十歲上下的方法,但是這個代碼將會給你外(因爲你想獲得Foo_Bar,不Meta)類名:

import traceback 

Class Foo_Bar: 
    ... 
    class Meta: 
     db_table = traceback.extract_stack()[-2][2].lower() 
相關問題