2 relaties van dezelfde tablename verwarrende SQLAlchemy

D.W.Z:

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")

Ik krijg een foutmelding:

ArgumentError: kon verbindingsvoorwaarde tussen ouder/kind niet bepalen   tabellen over relatie Share.user_from. Geef een 'primaryjoin' op   uitdrukking. Als 'secundair' aanwezig is, is 'secondaryjoin' nodig als   goed.

Hoe kan ik dit oplossen?

Bedankt!

2

1 antwoord

Zoals de foutmelding aangeeft, moet u de waarde primaryjoin opgeven voor uw relaties :

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")
    # ...

Zie Alternatieve joinvoorwaarden opgeven voor relatie() voor meer informatie.

6
toegevoegd