使用Flask访问和更改数据库中的关系字段

时间:2019-01-19 10:26:22

标签: python flask flask-sqlalchemy

我有3个关于用户及其角色的数据库模型。我正在尝试获取一个为特定用户打印角色的字符串,以便可以在管理面板中查看和修改它。

class User(db.Model, UserMixin):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(15), unique=True, nullable=False)
    email = db.Column(db.String(30), unique=True, nullable=False)
    email_confirmed_at = db.Column(db.DateTime(), default=datetime.utcnow)
    password = db.Column(db.String(60), nullable=False)
    roles = db.relationship('Role', secondary='user_roles')
    comments = db.relationship('Comment', backref = 'user', lazy= 'dynamic')

    def __repr__(self):
    return f"User('{self.username}', '{self.email}')"

class Role(db.Model):
    __tablename__ = 'roles'

    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(50), unique=True)

class UserRoles(db.Model):
    __tablename__ = 'user_roles'

    id = db.Column(db.Integer(), primary_key=True)
    user_id = db.Column(db.Integer(), db.ForeignKey('users.id', ondelete='CASCADE'))
    role_id = db.Column(db.Integer(), db.ForeignKey('roles.id', ondelete='CASCADE'))

在我的模板中,我尝试了{{ user.roles }},其中显示了一个内部包含角色的列表。

0 个答案:

没有答案