SqlAlchemy Ошибка при создании нескольких внешних ключей для одной таблицы - PullRequest
0 голосов
/ 23 декабря 2018

Я недавно использую sqlAlchemy и у меня возникают проблемы при создании новых таблиц, особенно когда речь идет о 2 внешних ключах, указывающих на 1 таблицу:

class Offers(db.Model):
    __tablename__ = 'offers'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    contact_ign = db.Column(db.String(100))
    conversion_rate = db.Column(db.Float)
    stock = db.Column(db.Integer)
    create_date = db.Column(db.DateTime(timezone=True), default=func.now())
    currency_pair = db.relationship('CurrencyPairs', backref='pair', lazy='dynamic')

class CurrencyPairs(db.Model):
    __tablename__ = 'currency_pairs'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    league = db.Column(db.String(100))
    pair_id = db.Column(db.Integer, db.ForeignKey('offers.id'))
    want = db.relationship('Currency', backref='want', lazy='dynamic')
    have = db.relationship('Currency', backref='have', lazy='dynamic')

class Currency(db.Model):
    __tablename__ = 'currency'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(100), nullable=False)
    poe_trade = db.Column(db.Integer, nullable=False)
    poe_official = db.Column(db.String(10), nullable=False)
    tier = db.Column(db.Integer, nullable=False)
    want_id = db.Column(db.Integer, db.ForeignKey('currency_pairs.id'))
    have_id = db.Column(db.Integer, db.ForeignKey('currency_pairs.id'))

Ошибка, которую я получаю:

sqlalchemy.exc.InvalidRequestError: One or more mappers failed to initialize - can't proceed with initialization of other mappers. Triggering mapper: 'Mapper|CurrencyPairs|currency_pairs'. Original exception was: Could not determine join condition b
etween parent/child tables on relationship CurrencyPairs.want - 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 refe
rence to the parent table

Я пробовал разные вещи, но получал тот же результат.Что я делаю неправильно?Заранее спасибо.

...