Получение ошибки; Ошибка типа: объект «Администратор» не является подписным - PullRequest
0 голосов
/ 11 июля 2019

Я создаю логин используя Flask-Bcrypt, Python и SQLAlchemy. Я успешно могу зарегистрировать новых администраторов, и это отлично создает хэш. Тем не менее, когда я пытаюсь войти в систему администратора и создать новый сеанс для указанного администратора, я получаю эту ошибку; Ошибка типа: объект «Администратор» не является подписным. Я понятия не имею, как решить эту проблему, занимался этим более суток.

Кроме того, я никогда не делал этого прежде, чем использовать SQLAlchemy. Я сделал это только с помощью MySQL. Поэтому я чувствую, что могу использовать неправильный синтаксис или что-то такое, чего не хватает.

Ошибка исходит от hashed_password = admin[0]['password']

Вот код, я также включил модель.

class Admin(db.Model):
    __tablename__="admins"
    id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(255))
    last_name = db.Column(db.String(255))
    username = db.Column(db.String(255))
    password = db.Column(db.String(255))
    created_at = db.Column(db.DateTime, server_default=func.now())
    updated_at = db.Column(db.DateTime, server_default=func.now(), onupdate=func.now())

  admin = Admin.query.filter_by(username=request.form['username']).all()
    if admin:
        hashed_password = admin[0]['password']
        if bcrypt.check_password_hash(hashed_password, request.form['password']):
            session['admin_id'] = admin.id
            return redirect ("/admin_home") 
...