SQLAlchemy: pobierz model z nazwy tabeli. Może to oznaczać dołączenie pewnej funkcji do konstruktora metaklas, o ile widzę
Chcę stworzyć funkcję, która, podając nazwę tabeli, zwraca ten modelNazwa tabeli. Na przykład:
class Model(Base):
__tablename__ = 'table'
...a bunch of Columns
def getModelFromTableName(tablename):
...something magical
więc getModelFromTableName ('table') powinien zwrócić klasę Model.
Moim celem jest użycie funkcji w prostym generatorze formularzy, który tworzę, ponieważ FormAlchemy nie działa z python3.2 i chcę, aby ładnie obsługiwał klucze obce.
Czy ktoś może mi dać jakieś wskazówki, jak uzyskać getModelFromTableName do pracy?
Oto jeden pomysł, który mam (może to być całkowicie błędne, nie pracowałem wcześniej z meta klasami ...)
Co by było, gdybym miał uczynić moje klasy Model dziedziczącymi zarówno z Base, jak iz jakiejś innej klasy (TableReg) i mieć metę klasy Model Store TableReg.Nazwa tabeli w jakimś globalnym słowniku lub Singletonie.
Zdaję sobie sprawę, że może to być całkowicie nieuzasadnione, ponieważ metaklasa Base robi kilka bardzo ważnych i całkowicie fajnych rzeczy, których nie chcę przerwać, ale zakładam, że musi istnieć sposób na dołączenie odrobiny kodu konstruktora do klasy meta moich modeli. Albo nie rozumiem.