【发布时间】:2014-10-13 20:25:34
【问题描述】:
我想跨多对多表创建关系,User 具有 Roles,而 Project 具有 Project。我想在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')
【问题讨论】:
标签: python sql orm sqlalchemy flask-sqlalchemy