CNorlander
CNorlander

Reputation: 385

Get next URL using flask redirect

I am following this information here, all seems good, but I need to know how to load the originally requested url from the new login page on the second to last line.

@app.route('/login', methods=['GET', 'POST'])
def login():
    error = None
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        if not models.check_auth(username, password):
            error = 'Please try again.'
        else:
            return redirect(url_for(**next**))
    return render_template('login.html', error=error)

Upvotes: 3

Views: 1897

Answers (1)

mechanical_meat
mechanical_meat

Reputation: 169484

Try this out:

@app.route('/login', methods=['GET', 'POST'])
def login():
    error = None
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        if not models.check_auth(username, password):
            error = 'Please try again.'
        else:
            return redirect(request.args.get("next") or url_for("admin"))
            #               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    return render_template('login.html', error=error)

Upvotes: 1

Related Questions