Создайте много ко многим на одном столе

Flask-SQLAlchemy даетпример о том, как создать отношения многих ко многим. Это делается между двумя разными таблицами.

Можно ли создать отношения «многие ко многим» на одном столе? Например, у сестры может быть много сестер, у которых также будет много сестер. Я пытался:

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: Не удалось определить условие соединения между родительскими / дочерними таблицами в отношении Girl.sisters - существует несколько путей внешнего ключа, связывающих таблицы через вторичную таблицу girl_sister_map. Укажите аргумент foreign_keys, предоставляющий список тех столбцов, которые должны учитываться как ссылки на внешние ключи из вторичной таблицы для каждой из родительской и дочерней таблиц.

Это возможно? Как я должен это делать?

Ответы на вопрос(1)

Ваш ответ на вопрос