Quiero hacer una función que, dado el nombre de una tabla, devuelva el modelo con ese nombre de tabla. Ej:SQLAlchemy: obtener el modelo del nombre de la tabla. Esto puede implicar agregar alguna función a un constructor de metaclase por lo que puedo ver
class Model(Base):
__tablename__ = 'table'
...a bunch of Columns
def getModelFromTableName(tablename):
...something magical
por lo getModelFromTableName ('mesa') debe devolver la clase de modelo.
Mi objetivo es utilizar la función en un generador de formulario simple que estoy haciendo ya que FormAlchemy no funciona con python3.2 y quiero que maneje muy bien las claves externas.
¿Alguien puede darme algún consejo sobre cómo hacer que getModelFromTableName funcione?
Aquí hay una idea que he (que podría ser totalmente equivocado, no he trabajado con las clases de meta antes ...)
¿Y si tuviera que hacer mis clases heredan de Modelo Base, así como alguna otra clase (TableReg) y tienen la clase meta del modelo de tienda TableReg. nombre de tabla en algún diccionario global o Singleton.
Me doy cuenta de que esto podría ser totalmente inactivo porque la metaclase de Base hace algunas cosas muy importantes y totalmente ingeniosas que no quiero romper, pero supongo que tengo que haber una forma de agregar un poco de código de constructor a la clase meta de mis modelos. O no entiendo
Usted puede hacer que al iteración a través de 'Base._decl_class_registry' – sayap