J'essaie de comprendre s'il est possible de faire quelque chose avec Sqlalchemy, ou si j'y pense de la mauvaise façon. À titre d'exemple, que j'ai deux (ce ne sont que des exemples) classes:Python sqlalchemy relation dynamique
class Customer(db.Model):
__tablename__ = 'customer'
id = Column(Integer, primary_key=True)
name = Column(String)
addresses = relationship('Address')
class Address(db.Model):
__tablename__ = 'address'
if = Column(Integer, primary_key=True)
address = Column(String)
home = Column(Boolean)
customer_id = Column(Integer, ForeignKey('customer.id'))
Et plus tard, je veux effectuer une requête qui obtient le client et juste leur domicile. Est-il possible de le faire avec quelque chose comme ceci:
db.session.query(Customer).join(Address, Address.home == True)
ci-dessus Est-ce que d'affiner/restreindre la jonction de sorte que les résultats seraient seulement obtenir l'adresse de la maison?
Merci à l'avance, Doug
Merci pour la réponse. J'aurais dû être plus clair sur ma question, les deux classes ne sont que des exemples que j'utilise pour illustrer le problème. Les classes d'exemple modélisent une relation un-2-plusieurs, avec ForeignKey désignant la jointure. Si elle effectue une requête simple pour obtenir un client, la collection de relations d'adresses contient également toutes les adresses de ce client. Mais ce que je veux, c'est remplacer ou ajouter aux critères de jointure afin que je puisse interroger pour obtenir un client, mais la collection de relations n'a qu'un seul élément, l'adresse du domicile. –