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". Ако е налице 'secondary', е необходим и 'secondaryjoin'.

Как мога да поправя това?

Благодаря!


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