страница не перенаправляет при попытке войти в систему - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь создать учетную запись, которая проверяет роли пользователей и перенаправляет их на другую страницу после проверки подлинности на основе их ролей.Я проверил везде и сделал именно то, что они заявили, но каждый раз, когда я пытаюсь войти в систему пользователя, я просто перенаправляется обратно на страницу входа в систему, и я понятия не имею, что я делаю неправильно.

менеджер входа в систему

@login_manager.user_loader
def load_user(user_id):
    return User.query.get(int(user_id))

моя пользовательская модель

class User(db.Model, UserMixin):
        __tablename__ = 'users'

        id = db.Column(db.Integer, primary_key=True)
        first_name=db.Column(db.String(80), unique=True, nullable=False)
        last_name=db.Column(db.String(80), unique=True, nullable=False)
        username = db.Column(db.String(80), unique=True, nullable=False)
        email=db.Column(db.String(80), unique=True, nullable=False)
        password= db.Column(db.String(80),nullable=False)
        score=db.Column(db.Integer(), nullable=False)
        roles=db.Column(db.String(20),nullable=False)
        posts= db.relationship('Post', backref='posts', lazy=True)

        def is_authenticated(self):
            return True

        def is_active(self):
            return self.is_active

        def activate_user(self):
            self.is_active = True


        def is_anonymous(self):
            return False

        def get_id(self):
            return unicode(self.id)

        def get_roles(self):
            return self.roles

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

маршрут входа в систему

@app.route("/teacher/login", methods=['GET','POST'])

def t_login():
    form=LoginForm()
    if request.method == 'POST' and form.validate_on_submit():
            user=User.query.filter_by(username=form.username.data).first()
            if user and bcrypt.check_password_hash(user.password, form.password.data):
                login_user(user)
                if 'Teacher' in current_user.roles:
                    return redirect(url_for('classes'))
                else:
                   return redirect(url_for('scoreboard'))
            else:
                flash(f'Login Unsuccessful. Please check your username and password', 'danger')
    return render_template('teacher_login_form.html',title='teacher login',form=form)

Я хотел бы быть перенаправлен на маршрут классов, если учитель в current_user.roles и«табло», если нет

...