Deseo crear un atributo mapeado de un objeto que se rellena desde otra tabla.SQLAlchemy propiedad declarativa de join (atributo único, no todo el objeto)
Usando el ejemplo de la documentación SQLAlchemy, deseo hacer un campo nombre_de_usuario existe en la clase de dirección de tal manera que puede ser fácilmente consultada y de fácil acceso (sin un segundo de ida y vuelta a la base de datos)
Por ejemplo, me gustaría ser capaz de consultar y filtrar por user_name
Address.query.filter(Address.user_name == 'wcdolphin').first()
y también el acceso al atributo user_name
de todos los objetos de dirección, sin penalización en el rendimiento, y tienen adecuadamente persisten escribe como se esperaría de un atributo en el __tablename__
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(50))
addresses = relation("Address", backref="user")
class Address(Base):
__tablename__ = 'addresses'
id = Column(Integer, primary_key=True)
email = Column(String(50))
user_name = Column(Integer, ForeignKey('users.name'))#This line is wrong
¿Cómo hago esto?
Encontré la documentación relativamente difícil de entender, ya que no parecía ajustarse a la mayoría de los ejemplos, especialmente los ejemplos de Flask-SQLAlchemy.
Qué es exactamente equivocado con la documentación? El [tutorial sqlalchemy] (http://docs.sqlalchemy.org/en/rel_0_7/orm/tutorial.html) cubre todo para tareas comunes. Y conceptos avanzados se encuentran en el resto de la documentación. – schlamar