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?