簡體   English   中英

在Django中登錄后重定向到最初請求的頁面

[英]Redirecting to originally requested page after login in Django

我是Django的新手。 登錄后,我需要對登錄功能進行編碼以重定向到最初請求的URL。 我環顧四周,在stackoverflow線程上發現了以下內容。

django重定向登錄后無法正常工作“下一步”不張貼?

我在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()函數中,如果看到存在next的值,則在用戶登錄后便重定向到該URL。這對我來說很好。

但是,上面線程中提出的解決方案涉及更多。 我很好奇為什么有必要做所有這些事情。 這里缺少什么?

謝謝

嘗試改變你的

<button type="submit">Login</button>

<input type="submit" value="Login" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM