Flask-SQLAlchemyは、多対多リレーションシップを作成する方法のexampleを提供します。これは2つの異なるテーブルの間で行われます。複数テーブルを1つのテーブルに作成する
同じテーブルに多対多リレーションシップを作成することはできますか?たとえば、姉妹には多くの姉妹がいて、姉妹には多くの姉妹がいます。私が試してみました:
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'))
しかし、私は私が手少女に妹を追加しようとすると:
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.
これは可能ですか?私はどのようにそれをやっていますか?