Twórz wiele do wielu na jednym stole

Flask-SQLAlchemy dajeprzykład jak stworzyć relację wiele do wielu. Odbywa się między dwoma różnymi tabelami.

Czy można utworzyć wiele do wielu relacji na tym samym stole? Na przykład siostra może mieć wiele sióstr, które również miałyby wiele sióstr. Próbowałem:

girl_sister_map = db.Table('girl_sister_map',
                      db.Column('girl_id', 
                                db.Integer, 
                                db.ForeignKey('girl.id')),
                      db.Column('sister_id', 
                                db.Integer, 
                                db.ForeignKey('girl.id')))

class Girl(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String)
    sisters = db.relationship('Girl',
                              secondary=girl_sister_map,
                              backref=db.backref('othersisters', lazy='dynamic'))

Ale kiedy próbuję dodać siostrę do dziewczyny, otrzymuję:

sqlalchemy.exc.AmbiguousForeignKeysError: Nie można określić warunku łączenia między tabelami nadrzędny / podrzędny w relacji Girl.sisters - istnieje wiele ścieżek klucza obcego łączących tabele za pomocą tabeli dodatkowej „girl_sister_map”. Podaj argument 'foreign_keys', podając listę tych kolumn, które powinny być liczone jako zawierające odwołanie do klucza obcego z tabeli pomocniczej do każdej z tabel nadrzędnych i podrzędnych.

czy to możliwe? Jak mam to robić?

questionAnswers(1)

yourAnswerToTheQuestion