J'utilise sql alchemy dans mon projet.Comment faire une requête sur l'attribut table jointe dans sqlachemy
J'ai un problème lorsque deux tables ou plus sont jointes ou ont une relation de clé étrangère alors je ne peux pas interroger l'attribut de tables jointes dans la condition where.
Par exemple. J'ai remarqué une table et une table utilisateur user.id est la clé étrangère de notice.sender maintenant je veux chercher avis par user.name
table avis: [id, l'expéditeur (FK user.id), récepteur (FK user.id), sous réserve, message, état]
table utilisateur: [id, nom, email, adresse, état]
Inscrivez-vous dans le modèle d'avis:
sender_user = relationship('User', primaryjoin='Notice.sender==user.id', backref=backref("sender_user"))
receiver_user = relationship('User', primaryjoin='Notice.receiver==user.id', backref=backref("receiver_user"))
requête SQL filtre alchimie:
user_name='john'
notice=db_session.query(Notice)
notice = notice.filter(Notice.sender_user.name == user_name)
Après requête ne fonctionne:
notice=db_session.query(Notice)
notice = notice.filter(Notice.user.name == user_name)
S'il vous plaît aider!
Dans la deuxième requête, voulez-vous dire 'notice.sender.name'? – jadkik94
Quelle est votre erreur? – jadkik94
@ jadkik94 Pour la deuxième erreur de requête est: Ni objet 'InstrumentedAttribute' ni objet 'Comparator' a un attribut 'name' – anils