Извините, если это дубликат, я изо всех сил пытался понять, как это вызывает ошибку, потому что она выглядит так же, как и все остальные, которые являются правильными.
Я хочу передать переменную в url_for
с помощью колбы, но я продолжаю получать TypeError
@app.route('/membership/register/', methods=["GET", "POST"])
def register():
if request.method == "GET":
return render_template("NewForm.html", error=False)
elif request.method == "POST":
checker = datetime.utcnow()
if (checker.minute % 2) == 0:
error = False
error_type = "username"
else:
error = False
error_type = "terms"
if error == False:
message = 'success'
elif error == True:
message = 'error'
else:
message = 'arbitrageerror'
print error_type, message
return redirect(url_for(message , error_msg = error_type ))
else:
return redirect(url_for('arbitrageerror'))
@app.route('/register/success', methods=["GET"])
def success():
if request.method == "GET":
return render_template("register_sucess.html", error=True)
@app.route('/register/arbitrageerror', methods=["GET"])
def error404():
if request.method == "GET":
return render_template("error404.html")
@app.route('/register/error', methods=["GET"], error_msg = error_type)
def error(error_msg):
if error_msg == "username":
if request.method == "GET":
return render_template("register_error.html")
if error_msg == "terms":
return "NO Terms"
Я получаю следующую ошибку:
TypeError
TypeError: error() takes exactly 1 argument (0 given)
Когда я запускаю его, я печатаю обе переменные, но потом не могу получить url_for
с добавленной переменной, чтобы получить переменную. Я не уверен, правильно ли я передаю это обработчику. redirect(url_for((message, error_msg=error_type))
- это строка, с которой мне нужна помощь, а затем фактическая функция для def error(error_msg)
Я просмотрел всю документацию и похоже, что я использую правильный синтаксис. Также, когда я запускаю его, я получаю следующую распечатку
Terms error
127.0.0.1 - - [18/May/2019 23:37:52] "POST /register/ HTTP/1.1" 302 -
127.0.0.1 - - [18/May/2019 23:37:52] "GET /register/error?error_msg=Terms HTTP/1.1" 500 -
Traceback (most recent call last):
Первая строка говорит мне, что у меня правильно определены переменные. Спасибо за помощь.