Как указать отношения, используя декларативный синтаксис SQLAlchemy?

StackOverflow https://stackoverflow.com/questions/250398

  •  05-07-2019
  •  | 
  •  

Вопрос

Я не могу найти надлежащую документацию о том, как определить отношения используя декларативный синтаксис SQLAlchemy .. Это не поддерживается? То есть я должен использовать «традиционный» синтаксис?
Я ищу способ указать отношения на более высоком уровне, избегая необходимости связываться с внешними ключами и т. Д. Я хотел бы просто объявить " address = OneToMany (Address) " и позвольте фреймворку обрабатывать детали ... Я знаю, что Elixir может сделать это, но мне было интересно, если " обычный " SQLA тоже может это сделать.
Спасибо за вашу помощь!

Это было полезно?

Решение

Предполагается, что вы имеете в виду декларативный плагин , где все Я собираюсь сказать, задокументировано с примерами:

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'))

Другие советы

Посмотрите на " Настройка отношений " раздел декларативной документации . Не такой высокий уровень, как «OneToMany» но лучше, чем полное определение отношения.

class Address(Base):
    __tablename__ = 'addresses'

    id = Column(Integer, primary_key=True)
    email = Column(String(50))
    user_id = Column(Integer, ForeignKey('users.id'))
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top