2011-07-14 9 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_ 
関連する問題