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!

È stato utile?

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'))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top