python - 跨多对多表的关系

标签 python sql orm sqlalchemy flask-sqlalchemy

我想在多对多表之间创建关系,用户角色,其中有项目。我希望在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/

相关文章:

python - 将闪烁时间限制设置为 django message.success?

python - Numpy.dot() 尺寸未对齐

python - 定义抽象类的三种方式的区别

mysql - 使用 max sql 获取关联值

sql - Django查询大量关系

对构造函数的 Python 函数式编程引用

mysql - 快速删除MySQL中的重复记录

Java:JPQL 选择语句

.net - ADO.NET Entity Framework 的实际好处是什么?

java - Hibernate 遵循哪种模式?