Crea muchos a muchos en una mesa

Frasco-SQLAlchemy da unaejemplo de cómo crear una relación de muchos a muchos. Se realiza entre dos tablas diferentes.

¿Es posible crear una relación de muchos a muchos en la misma tabla? Por ejemplo, una hermana puede tener muchas hermanas, que también tendrían muchas hermanas. Yo he tratado:

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

Pero cuando intento agregar una hermana a una niña, obtengo:

sqlalchemy.exc.AmbiguousForeignKeysError: No se pudo determinar la condición de unión entre las tablas padre / hijo en la relación Girl.sisters: hay varias rutas de clave externa que vinculan las tablas a través de la tabla secundaria 'girl_sister_map'. Especifique el argumento 'foreign_keys', que proporciona una lista de aquellas columnas que deben contarse como que contienen una referencia de clave externa de la tabla secundaria a cada una de las tablas primarias y secundarias.

es posible? ¿Cómo debo hacerlo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta