亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Django:@login_required 裝飾器不會重定向到“下一個”

Django:@login_required 裝飾器不會重定向到“下一個”

撒科打諢 2023-07-11 13:49:21
我正在使用 Django 構建一個字典應用程序,用戶可以在其中定義單詞。但是,我希望用戶先登錄才能執行此操作。@login_required我試圖在我的define視圖(允許用戶定義單詞的視圖)上使用內置裝飾器來實現此約束。使用@login_required,當我未登錄并嘗試定義一個單詞(使用定義表單)時,我正確地重定向到登錄頁面。這是我在views.pylogin_view中的觀點:def login_view(request):    form = LoginForm(data=request.POST)    if form.is_valid():        username = form.cleaned_data["username"]        password = form.cleaned_data["password"]        user = authenticate(request, username=username, password=password)        if user is not None:            login(request, user)            return HttpResponseRedirect(reverse(settings.LOGIN_REDIRECT_URL))    return render(request, "users/login.html", {"form": form})此時我的網址看起來像這樣:http://127.0.0.1:8000/login?next=/define到目前為止,一切都很好。然而,一旦我登錄,Django 不會將我重定向回我最初嘗試訪問的定義表單(位于 /define)。在這種情況下,我如何告訴 Django 將我重定向到定義表單?另外,在我的settings.py中,我重新定義了LOGIN_URL、LOGIN_REDIRECT_URL和LOGOUT_REDIRECT_URL變量,如下所示:LOGIN_URL = "users:login"LOGIN_REDIRECT_URL = "dictionary:index"LOGOUT_REDIRECT_URL = "dictionary:index"其中users是處理登錄的應用程序的名稱,dictionary是處理定義的應用程序的名稱。問題可能出在這些變量之一嗎?
查看完整描述

1 回答

?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

您可以撤消設置中的更改并更改線路

    return HttpResponseRedirect(reverse(settings.LOGIN_REDIRECT_URL))

到 return redirect('/targeturl')


查看完整回答
反對 回復 2023-07-11
  • 1 回答
  • 0 關注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號