Доступ и изменение поля отношений в базе данных с Flask - PullRequest
0 голосов
/ 19 января 2019

У меня есть 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 }}, который показывает список с ролями внутри.

...