2011-07-14 48 views
2

我試圖預先填充對象關聯列表。因此,對於特定映射類,我列出所有表:sqlalchemy:從sqlalchemy.schema.MetaData獲取python類

ExampleClass是我的映射python類,例如。

name = ExampleClass.__name__ 
tables = [x for x in ExampleClass.metadata.tables.keys() if x != name ] 

所以,我得到了表名,但我怎麼能得到與該表相關的類?

可能嗎?

我使用聲明的方式來映射表和類。

在此先感謝。

+0

你也可以考慮跟蹤您的映射類的字典,其中鍵是表名中找到的表名PARAM。這是我使用的解決方法。 – Turion

回答

1

我發現這種方式傳遞清單表

def __find_class(self, table): 
     for x in mapperlib._mapper_registry.items(): 
      if x[0].mapped_table.name == table: 
       return x[0].class_