Я хочу создать функцию, которая, учитывая имя таблицы, возвращает модель с этим tablename. Например:
class Model(Base):
__tablename__ = 'table'
...a bunch of Columns
def getModelFromTableName(tablename):
...something magical
поэтому getModelFromTableName ('table') должно возвращать класс Model.
Моя цель - использовать функцию в генераторе простой формы, которую я создаю, поскольку FormAlchemy не работает с python3.2, и я хочу, чтобы он отлично обрабатывал внешние ключи.
Может ли кто-нибудь указать мне, как заставить getModelFromTableName работать?
Вот одна идея, которую я имею (это может быть совершенно неправильно, я не работал с метаклассами раньше...)
Что делать, если мои классы Model наследуют от Base, а также некоторых других классов (TableReg) и имеют класс meta TableReg store Model. tablename в некотором глобальном словаре или Singleton.
Я понимаю, что это может быть полностью отключено, потому что Base metaclass делает некоторые очень важные и совершенно отличные вещи, которые я не хочу ломать, но я полагаю, что для меня должен быть способ добавить немного кода конструктора в мета-класс моих моделей. Или я не понимаю.