SQLAlchemy:从表名获取模型。根据我所看到的,这可能意味着向元类构造函数添加一些函数。

20 浏览
0 Comments

SQLAlchemy:从表名获取模型。根据我所看到的,这可能意味着向元类构造函数添加一些函数。

我想创建一个函数,给定一个表的名称,返回具有该tablename的模型。

例如:

class Model(Base):
    __tablename__ = 'table'
    ...一堆列
def getModelFromTableName(tablename):
   ...一些神奇的东西

所以getModelFromTableName('table')应该返回模型类。

我的目标是在我正在制作的简单表单生成器中使用该函数,因为FormAlchemy不适用于python3.2,我希望它能很好地处理外键。

有人能否给我一些关于如何使getModelFromTableName工作的指导?

这是我有的一个想法(可能完全错误,因为我以前没有使用过元类...)

如果我的模型类除了继承Base之外还继承一些其他类(TableReg),并且将TableReg的元类存储Model.tablename在一些全局字典或单例中。

我意识到这可能完全错误,因为Base的元类执行一些非常重要和非常巧妙的操作,我不想破坏,但我假设我必须有一种方法来向我的模型的元类添加一点构造器代码。或者我不理解。

0