【问题标题】:Relationship across a many-to-many table跨多对多表的关系
【发布时间】:2014-10-13 20:25:34
【问题描述】:

我想跨多对多表创建关系,User 具有 Roles,而 Project 具有 Project。我想在User 中与所有与其Roles 相关的Projects 建立关系。我对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')

【问题讨论】:

    标签: python sql orm sqlalchemy flask-sqlalchemy


    【解决方案1】:

    问题在于您的“参考”。 我向您推荐以下链接,这些链接将帮助您了解约束和关系。

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多