0
我是Django的新手。我需要在登錄後編寫登錄功能以重定向到最初請求的URL。我環顧四周,在stackoverflow線程上找到了以下內容。在Django中登錄後重定向到最初請求的頁面
django redirect after login not working "next" not posting?
我看到Django的機制的文檔以下
login_required()進行以下操作:
如果用戶沒有登錄,重定向到settings.LOGIN_URL,路過 查詢字符串中的當前絕對路徑。例如: /accounts/login /?next =/polls/3 /。
我還讀了django.contrib.auth包的login()方法將next
傳遞給模板。所以我在我的視圖中定義了login()函數(我不能使用'auth'包中的那個,因爲我需要一些定製)。
def login(request):
next = request.GET['next']
return render(request, 'user/login.html', {'next': next})
在我的模板
<form method="post" action="{% url 'user:login_user' %}" >
{% csrf_token %}
<p><label for="id_username">Username:</label> <input autofocus="" id="id_username" maxlength="254" name="username" type="text" required /></p>
<p><label for="id_password">Password:</label> <input id="id_password" name="password" type="password" required /></p>
<input type="hidden" name="next" value="{{next}}" />
<button type="submit">Login</button>
</form>
在我login_user()函數,如果我看到未來的價值是存在的,我重定向到URL一旦我已經登錄的用戶。這個作品對我來說很好。
但是,上面的線程中呈現的解決方案涉及更多一點。我很好奇爲什麼有必要這樣做。這裏錯過了什麼?
感謝
其實,我並沒有正確地提到我的代碼工作正常。我很好奇爲什麼你需要在其他線程中提出所有建議才能使其工作。我更新了我的問題。 – user2125853