2016-03-01 20 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() 
相关问题