@Lorrain

Sqlalchemy AmbiguousForeignKeysError?

class User(Base):
    __tablename__ = '_users'
    id = Column(String(), primary_key=True)
    firstname = Column(String(100))
    lastname = Column(String(100))
    reg_date = Column(DateTime(), server_default=text('CURRENT_TIMESTAMP'))
    transactions = relationship('InnerTransaction')

class InnerTransaction(Base):
    __tablename__ = '_transactions'
    id = Column(Integer(), primary_key=True, autoincrement=False)
    sender_id = Column(String(), ForeignKey('_users.id'))
    receiver_id = Column(String(), ForeignKey('_users.id'))
    amount = Column(String())
    created_at = Column(DateTime(), server_default=text('CURRENT_TIMESTAMP'))


Эти модели корректно создают таблицы, но при обращении к таблицам возникает ошибка:

Exception has occurred: AmbiguousForeignKeysError
Could not determine join condition between parent/child tables on relationship User.transactions - there are multiple foreign key paths linking the tables. Specify the 'foreign_keys' argument, providing a list of those columns which should be counted as containing a foreign key reference to the parent table.


В документации есть похожие примеры, однако как их применить на свой случай я не разобрался.

Как правильно организовать связь таблиц с несколькими внешними ключами?
  • Вопрос задан
  • 1428 просмотров
Решения вопроса 2
@kalapanga
В документации пример есть. Там не похожий, а точно такой случай:
https://docs.sqlalchemy.org/en/14/orm/join_conditi...
Ответ написан
Комментировать
@Lorrain Автор вопроса
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы