【发布时间】:2016-03-26 10:11:33
【问题描述】:
在登录表单验证期间,我查询用户并将对象存储在表单实例中。我想将用户对象传递到模板中。在Python, Flask - Passing Arguments Into redirect(url_for()) 之后,我尝试了:
def home():
form = LoginForm(request.form)
# Handle logging in
if request.method == 'POST':
if form.validate_on_submit():
login_user(form.user)
flash("You are logged in.", 'success')
redirect_url = request.args.get("next") or url_for("user.profile")
return redirect(redirect_url, userobj=form.user)
我正在重定向到:
@blueprint.route("/profile")
@login_required
def profile():
return render_extensions("users/profile.html")
我想再次将用户对象传递给 profile.html 模板。
我明白了:
TypeError: redirect() got an unexpected keyword argument 'userobj'
我该如何解决这个问题?
【问题讨论】:
-
您似乎根本没有遵循该链接问题中的建议。首先,参数是
url_for,而不是redirect;其次,答案明确指出您的目标处理程序实际上必须接受一个参数,而您的却没有。 -
感谢您指出这一点。就我而言,我意识到我可以访问烧瓶登录的 current_user,我最终使用了