2014-10-13 3 views
1

Project을 가진 UserRoles이있는 many-to-many 테이블간에 관계를 만들고 싶습니다. 나는 User에 모든 Projects에 관계가 그것의 Roles와 관련있는 원한다. primaryjoinsecondaryjoin으로 많이 시도했지만 제대로 작동하지 않습니다.다 대다 테이블의 관계

roles_users = db.Table('roles_users', 
    db.Column('role_id', db.Integer, db.ForeignKey('role.id')), 
    db.Column('user_id', db.Integer, db.ForeignKey('user.id')), 
    db.PrimaryKeyConstraint('role_id', 'user_id') 
) 

class User(db.Model, UserMixin): 
    id = db.Column(db.Integer, primary_key=True) 
    username = db.Column(db.Unicode(80), unique=True, nullable=False) 
    roles = db.relationship('Role', secondary=roles_users, backref='users') 
    projects = db.relationship('Project' ????) 

class Role(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    name = db.Column(db.Unicode(80), unique=True, nullable=False) 
    project_id = db.Column(db.Integer, db.ForeignKey('project.id'), nullable=False) 

class Project(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    name = db.Column(db.Unicode(80), nullable=False) 
    roles = db.relationship('Role', backref='project') 

답변