ログインフォームの検証中に、私はユーザーを照会し、そのフォームインスタンスにオブジェクトを格納します。私はテンプレートにユーザーオブジェクトを渡したいと思います。私はにリダイレクトしていフラスコテンプレートにデータを渡す
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)
:Python, Flask - Passing Arguments Into redirect(url_for())に続いて、私が試した
@blueprint.route("/profile")
@login_required
def profile():
return render_extensions("users/profile.html")
と再び私はprofile.htmlテンプレートにユーザーオブジェクトを渡したいです。
私が取得しています:
TypeError: redirect() got an unexpected keyword argument 'userobj'
がどのように私はこの問題を解決することができますか?
あなたはそのリンクされた質問のアドバイスにまったく従っていないようです。始めに、パラメータは 'redirect'ではなく' url_for'です。第二に、答えは明示的にあなたのターゲットハンドラがあなたが実際にはないパラメータを受け入れなければならないことを指摘しています。 –
それを指摘してくれてありがとう。私の場合、フラスコログインのcurrent_userにアクセスできたことがわかりました。私は – user61629