2 отношения одного и того же имени таблицы сбивают с толку SQLAlchemy

IE:

class Share(db.Model):
    """
    Stores the Checkpoint shares between users
    """
    id = db.Column(db.Integer, primary_key=True)
    user_from_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user_from = db.relationship("User")
    user_to_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user_to = db.relationship("User")

Я получаю сообщение об ошибке:

ArgumentError: Не удалось определить условие соединения между родительскими и дочерними таблицами в отношении Share.user_from. Укажите выражение 'primaryjoin'. Если присутствует «вторичный», необходимо также «вторичное соединение».

Как я могу это исправить?

Спасибо!


person nubela    schedule 06.12.2011    source источник


Ответы (1)


Как следует из сообщения об ошибке, вам необходимо указать значение primaryjoin для ваших отношений. :

class Share(db.Model):
    # ...
    user_from = relationship("User", primaryjoin="Share.user_from_id==User.id")
    user_to = relationship("User", primaryjoin="Share.user_to_id==User.id")
    # ...

См. раздел Указание альтернативных условий соединения для отношения(). для получения дополнительной информации.

person van    schedule 06.12.2011