Я хочу создать функцию, которая по имени таблицы возвращает модель с этим 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 )и имели метакласс класса TableReg Store Model. имя_таблицы в некотором глобальном словаре или синглтоне.
Я понимаю, что это может быть полностью отключено, потому что метакласс Base делает некоторые очень важные и совершенно отличные вещи, которые я не хочу ломать, но я предполагаю, что у меня должен быть способ добавить немного кода конструктора в метакласс. из моих моделей. Или я не понимаю.