quiza te sirva un poco de codigo para poder compara y tomar ideas te dejo esta pagina donde en un proyecto que me toco ver en su minuto me ayudo mucho
http://nullege.com/ http://nullege.com/codes/show/src%40d%40b%40dbcook-HEAD%40trunk%40dbcook%40usage%40example%40example1.py/11/sqlalchemy/python ademas esta doc esta bastante bien http://www.cafepy.com/article/python_attributes_and_methods/ http://www.cafepy.com/article/python_attributes_and_methods/python_attributes_and_methods.pdf El día 26 de septiembre de 2012 10:37, Jose Caballero <jcaballero....@gmail.com> escribió: > en esa linea estoy investigando. > Mi problema va un poco mas lejos. > Me gustaria ser capaz de poder gestionar un numero arbitrario de tablas > (todas con el mismo 'schema'). En otras palabras, necesitaria un numero > indefinido de clases, cada una con un nombre diferente (que luego sera, > siguiente ese ejemplo, el nombre de la tabla). > Estoy intentando combinar el ejemplo de la doc usando declared_attr con lo > [poco] que se de factorias de clases. > > Muchas gracias, > Jose > > > El 26 de septiembre de 2012 03:19, Marcos Sánchez Provencio > <ra...@arrakis.es> escribió: > >> Creo que lo que quieres es declared_attr >> >> De la docu, un ejemplo de uso: >> >> from sqlalchemy.ext.declarative import declared_attr >> >> class MyMixin(object): >> >> @declared_attr >> def __tablename__(cls): >> return cls.__name__.lower() >> >> __table_args__ = {'mysql_engine': 'InnoDB'} >> __mapper_args__= {'always_refresh': True} >> >> id = Column(Integer, primary_key=True) >> >> class MyModel(MyMixin, Base): >> name = Column(String(1000)) >> >> >> >> >> El 25/09/12 16:20, Jose Caballero escribió: >> >> Hola, >> >> >> SQLAlchemy 0.7.8-1 >> python 2.4 >> >> >> Si hago algo como lo siguiente [1] todo funciona perfectamente. Luego >> puedo crear la tabla en la DB con el nombre "table1", y puedo interaccionar >> con ella. >> Lo que quisiera hacer es que el nombre de la tabla fuese un parametro. >> Pero si hago algo como [2], al intentar usar la clase (para salvar un objeto >> session, por ejemplo) obtengo este mensaje de error [3]. >> Estoy intentando investigar por que, pero si alguien mientras tanto me da >> una pista, todo comentario sera bien recibido. >> >> >> Muchas gracias por adelantado. >> Jose >> (perdon por la ausencia de tildes) >> >> >> >> ------------------------------------------------------------------------------------------------------- >> [1] >> >> >> Base = declarative_base() >> class Foo(Base): >> __tablename__ = "table1" >> id = Column(Integer, primary_key=True) >> var1 = Column(String) >> var2 = Column(String) >> >> >> ------------------------------------------------------------------------------------------------------- >> [2] >> >> Base = declarative_base() >> def createFoo(tablename): >> class Bar(Base): >> __tablename__ = tablename >> id = Column(Integer, primary_key=True) >> var1 = Column(String) >> var2 = Column(String) >> return Bar >> >> >> Foo = createFoo('table1') >> >> >> ------------------------------------------------------------------------------------------------------- >> [3] >> >> sqlalchemy.exc.OperationalError: (OperationalError) no such table: table1 >> u'INSERT INTO table1 (var1, var2) VALUES (?, ?)' ('blah', 'blah') >> >> >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es@python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es@python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Miguel Zamora M. Programador en Computacion e Informatica 08-1351249 mzmp...@gmail.com Santiago-Chile _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/