Come specificare le relazioni usando la sintassi dichiarativa di SQLAlchemy?
-
05-07-2019 - |
Domanda
Non riesco a trovare alcuna documentazione adeguata su come specificare le relazioni
utilizzando la sintassi dichiarativa di SQLAlchemy .. Non è supportato? Cioè, dovrei usare il "tradizionale" sintassi?
Sto cercando un modo per specificare le relazioni a un livello superiore, evitando di dover fare confusione con le chiavi esterne ecc. Vorrei solo dichiarare " indirizzi = OneToMany (Indirizzo) " e lascia che il framework gestisca i dettagli. So che l'elisir può farlo, ma mi chiedevo se "semplice". Anche SQLA potrebbe farlo.
Grazie per il tuo aiuto!
Soluzione
Supponendo che ti riferisci a il plugin dichiarativo , dove tutto Sto per dire che è documentato con esempi:
class User(Base):
__tablename__ = 'users'
id = Column('id', Integer, primary_key=True)
addresses = relation("Address", backref="user")
class Address(Base):
__tablename__ = 'addresses'
id = Column('id', Integer, primary_key=True)
user_id = Column('user_id', Integer, ForeignKey('users.id'))
Altri suggerimenti
Guarda " Configuring Relations " sezione della Documenti dichiarativi . Livello non abbastanza elevato di "OneToMany" ma meglio che specificare completamente la relazione.
class Address(Base):
__tablename__ = 'addresses'
id = Column(Integer, primary_key=True)
email = Column(String(50))
user_id = Column(Integer, ForeignKey('users.id'))