ちょうど私が答えのクラスにstaticとして発電方法を追加しましたので、私は両方の前に宣言子クラスまたは新しいdinamically-作成を使用することができる発電方法
def mapClass(class_name, table_name):
# Allows to generate previously undefined mapped classes, remapping when necessary
#For security reason this will only map a class
#when class is not previously declared
#or if declared, when is a MappableClass subclass,
#this way we prevent to map any class.
#Even when not able to return a mapped class it will return corresponding class_name class
#if so, we'll get an error when accessing non existing MappableClass members
if not globals.has_key(class_name):
cls=type(class_name, (MappableClass,), {})
globals[class_name]=cls
else:
cls=globals[class_name]
if issubclass(cls,MappableClass):
tab_obj=Table(table_name,meta,autoload=True)
mapper(cls, tab_obj)
return cls
またはhere としてジェネレータクラスを継承を定義、1つ。
ねえ、おかげで答えのために。しかし、あなたはマルチテーブル継承のコンセプトを得る方法を知っていますか(下記参照)? – fynn
まあ... sqlalchemyがどのようにテーブルの継承を処理するのか分かりません...データベースに継承情報を格納していますか? (答える代わりに申し訳ありません)もしそうでなければ、あなたはそれを保存し、それをクラス生成で取り戻す必要があります。とにかく、継承マッパー引数をmapClassメソッドに追加できます – Kelbethor
はい、多型はデータベースに保存されています([こちらを参照](http://www.sqlalchemy.org/docs/orm/inheritance.html#joined-table-継承))。しかし、私は、データベースの反映と継承の組み合わせに対する解決策を見つけるのに苦労しています。 – fynn