Flask-SQLAlchemy daje example, jak stworzyć wiele do wielu relacji. Odbywa się między dwiema różnymi tabelami.Stwórz wiele dla wielu na jednej tabeli
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ż mają 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 gdy próbuję dodać siostra dziewczynki uzyskać:
sqlalchemy.exc.AmbiguousForeignKeysError: Could not determine join condition between parent/child tables on relationship Girl.sisters - there are multiple foreign key paths linking the tables via secondary table 'girl_sister_map'. Specify the 'foreign_keys' argument, providing a list of those columns which should be counted as containing a foreign key reference from the secondary table to each of the parent and child tables.
Czy to możliwe? Jak powinienem to robić?