[pyar] Herencia en SQLAlchemy
Tomas Zulberti
tzulberti en gmail.com
Mar Jul 29 14:32:29 ART 2014
Hola.
Tengo dos modelos en SQLAlchemy:
- Persona
- Usuario
Donde quiero que Usuario extienda de Persona. El tema es que a
diferencia de los ejemplos de SQLAlchemy, la clase base Persona tiene
sentido sola. Es decir, existe un registro de varias personas, y para
alguna de ellas se crea el registro de Usuario.
Los modelos son algo asi:
class Persona(db.Model):
__mapper_args__ = {'polymorphic_on': 'person_type'}
id = db.Column(db.Integer, nullable=False, primary_key=True)
email = db.Column(db.String(1024), nullable=False)
person_type = db.Column(db.String(20), nullable=False)
class Usuario(Persona):
__mapper_args__ = {'polymorphic_identity': 'usuario'}
id = db.Column(db.Integer, db.ForeignKey('persona.id'),
primary_key=True, nullable=False)
password = db.Column(db.String(1024), nullable=False)
El problema es que quiero poder hacer algo como esto y no encuentro la forma:
>>> p = Person(email='pepe en gmail.com')
>>> db.session.add(p)
>>> db.session.commit()
>>> print p.id
3
>>> u = Usuario(id=3, password='UN HASH')
>>> db.session.add(u)
>>> db.session.commit()
(IntegrityError) null value in column "email" violates not-null constraint
'INSERT INTO persona (id, name,
Es decir, esta intentando de insertar una persona cuando yo lo unico
que quiero que cree es el valor de una persona
Muchas gracias,
Tomas Zulberti
More information about the pyar
mailing list