mardi 9 novembre 2021

Flask KeyError: 'ADMIN'

I got a issue when create the user my flask project below is my code, there is an error called KeyError: 'ADMIN'

ADMIN = 'sc19hcs@leeds'

class Role(db.Model):
__tablename__ = 'roles'
id = db.Column(db.Integer, primary_key=True)
default = db.Column(db.Boolean, default=False, index=True)
permissions = db.Column(db.Integer)
users = db.relationship('User', backref='role', lazy='dynamic')

def __init__(self, **kwargs):
    super(Role, self).__init__(**kwargs)
    if self.permissions is None:
        self.permissions = 0


@staticmethod
def insert_role():
    roles = {
        'Anonymous': [Permission.ANONYMOUS],
        'User': [Permission.NORMAL],
        'Admin': [Permission.NORMAL, Permission.ADD]
    }
    default_role = 'User'
    for r in roles:
        role = Role.query.filter_by(name=r).first()
        if role is None:
            role = Role(name=r)
        role.reset_permission()
        for perm in roles[r]:
            role.add_permission(perm)
        role.default = (role.name == default_role)
        db.session.add(role)
    db.session.commit()

class User(db.Model, UserMixin):

__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
name = db.Column(db.String(64))
email = db.Column(db.String(20), unique=True)
password = db.Column(db.String(50))

def is_administrator(self):
    return self.can(Permission.ADMIN)


def __init__(self, **kwargs):
    super(User, self).__init__(**kwargs)
    if self.role is None:
        if self.email == current_app.config['ADMIN']:
            self.role = Role.query.filter_by(name='Admin').first()
        if self.role is None:
            self.role = Role.query.filter_by(default=True).first()

Above is the code for my model. And below is the error message enter image description here

enter image description here

Can anyone help with this?




Aucun commentaire:

Enregistrer un commentaire