我想在多对多表之间创建关系,用户
有角色
,其中有项目
。我希望在User
中建立与其Roles
相关的所有Projects
的关系。我尝试了很多 primaryjoin
和 secondaryjoin
但我没有让它工作。
这是我的模型:
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')
最佳答案
问题出在你的“引用资料”上。 我向您推荐以下链接,它们将帮助您了解约束和关系。
http://docs.sqlalchemy.org/en/rel_0_9/orm/relationships.html#many-to-many
这是我发现最适合关联的链接。
http://docs.sqlalchemy.org/en/rel_0_9/orm/relationships.html#association-object
关于python - 跨多对多表的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26348313/