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
Can anyone help with this?
Aucun commentaire:
Enregistrer un commentaire