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
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/