Ktulhy
@Ktulhy
Программирую на Python, C, Coffee Script

Несколько Many2One relationship в SQLAlchemy?

class Person(BaseTable):
    __tablename__ = "persons"
    id = Column(Integer, primary_key=True)

class F(BaseTable):
    __tablename__ = "fabcs"
    abc_id = Column(Integer, ForeignKey("persons.id"))
    a = relationship('Person')
    b = relationship('Person')
    c = relationship('Person')

При таком коде при попытке присвоить a, b и c разные значение во всх остаётся что-то одно. Как сделать так, чтобы a, b и c могли быть разными?
  • Вопрос задан
  • 557 просмотров
Решения вопроса 1
Ktulhy
@Ktulhy Автор вопроса
Программирую на Python, C, Coffee Script
Разобрался таки. Ларчик просто открывался:
docs.sqlalchemy.org/en/rel_1_0/orm/join_conditions.html
В данном случае это будет выглядеть так:
class F(BaseTable):
    __tablename__ = "fabcs"
    a_id = Column(Integer, ForeignKey("persons.id"))
    b_id = Column(Integer, ForeignKey("persons.id"))
    c_id = Column(Integer, ForeignKey("persons.id"))
    a = relationship('Person', foreign_keys=[a_id])
    b = relationship('Person', foreign_keys=[b_id])
    c = relationship('Person', foreign_keys=[c_id])
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
angru
@angru
из документации:

class Parent(Base):
    __tablename__ = 'parent'
    id = Column(Integer, primary_key=True)
    children = relationship("Child")

class Child(Base):
    __tablename__ = 'child'
    id = Column(Integer, primary_key=True)
    parent_id = Column(Integer, ForeignKey('parent.id'))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 22:26
3500 руб./за проект
22 нояб. 2024, в 21:47
3000 руб./за проект
22 нояб. 2024, в 21:44
50000 руб./за проект