Как указать отношения, используя декларативный синтаксис SQLAlchemy?
-
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'))