2012-11-23 1 views
1

Je suis en train de définir plusieurs à plusieurs relations d'utilisateurs. J'ai suivi les docs et le meilleur que je suis arrivé était:SQLAlchemy: Comment faire beaucoup à plusieurs de table pour lui-même (de manière déclarative)

import sqlalchemy as sa 
from sqlalchemy import orm 
from sqlalchemy.ext.declarative import declarative_base 

Base = declarative_base() 


class Friends(Base): 
    __tablename__ = 'friends' 
    user1_id = sa.Column(sa.ForeignKey('users.id'), primary_key=True) 
    user2_id = sa.Column(sa.ForeignKey('users.id'), primary_key=True) 


class User(Base): 
    __tablename__ = 'users' 
    id = sa.Column(sa.Integer, primary_key=True) 
    name = sa.Column(sa.String(50)) 
    # many to many 
    friends = orm.relationship('User', secondary=Friends, backref=Friends) 

u = User(name='someuser') 

Mais cela me donnerait

"AttributeError: 'Friends' object has no attribute 'foreign_keys"

Qu'est-ce qui ne va pas?

Répondre

1

Voici votre erreur: vous définissez backref à la classe Amis. Utilisez une chaîne

+0

Merci, mais cela n'a pas aidé. Même erreur – GabiMe

+0

Remplacez aussi les secondaires par 'Friends .__ table__'. – Tobu

Questions connexes