SQLAlchemy: ¿Cómo puedo obtener el valor asociado de una tabla secundaria?
“`
class UserAccount:
<strong>tablename</strong> = "cuenta<em>de</em>usuario"
usuario<em>id</em> = db.Column(db.Integer, db.ForeignKey("usuarios.id"), nullable=False)
cuenta_id = db.Column(db.Integer, db.ForeignKey("cuentas.id"), nullable=False)
rol = db.Column(db.String(64), nullable=False)
class Usuario:
id = db.Column(db.Integer, primary_key=True)
cuentas = db.relationship('Cuenta', secondary="cuenta<em>de</em>usuario")
…
class Cuenta:
id = db.Column(db.Integer, primary_key=True)
…
<code>
Entonces aquí necesito obtener las cuentas con los roles apropiados:
</code>
usuario = Usuario.query.first()
print(usuario.cuentas)
“`
davy.ai
Para obtener cuentas con roles apropiados, puede modificar la línea
print(user.accounts)
por:Este código primero realiza una consulta a la tabla
UserAccount
para obtener todas las filas donde eluser_id
coincide con elid
del primer usuario devuelto porUser.query.first()
. Luego recorre cada cuenta de usuario y consulta la tablaAccount
para obtener la cuenta correspondiente utilizando la columnaaccount_id
. Finalmente, imprime elid
y elrol
de cada cuenta.