[英]How can I redirect to user requested url after login - Django loginrequiredmixin
我正在嘗試使用Django LoginRequiredMixin限制對視圖的訪問。 如果用戶未登錄,它將重定向到登錄頁面。 但是問題是登錄后沒有重定向到用戶鍵入的url,而是轉到默認頁面?
例如,用戶嘗試登錄site / site-create頁面。 如果用戶未登錄,則轉到登錄頁面。 登錄后進入默認的登錄頁面,這里我想將用戶重定向到site / site-create頁面。
class CreateSite(LoginRequiredMixin, CreateView):
model = Site
fields = ['name','site_category','description',]
登錄/ views.py
class LoginViewClass(FormView):
"""
Provides the ability to login as a user with a username and password
"""
form_class = AuthenticationForm
template_name = 'login/login_view_class.html'
def get_context_data(self, **kwargs):
context = super(LoginViewClass, self).get_context_data(**kwargs)
create_all_menus(ALL_MENUS)
return context
def post(self, request):
username = self.request.POST['username']
password = self.request.POST['password']
user = authenticate(username=username, password=password)
編輯->登錄views.py添加了怎么辦? 謝謝
LoginRequiredMixin
將重定向到login_url
並將原始URL添加為參數redirect_field_name
(鏈接到代碼) 。
login_url
和redirect_field_name
是可以在視圖中定義的兩個屬性,如下所示:
class MyView(LoginRequiredMixin, View):
login_url = '/login/'
redirect_field_name = 'redirect_to'
此示例將重定向到/login/?redirect_to={current_url}
如果未指定,則這兩個字段具有默認值:
在您的情況下,您的登錄視圖似乎沒有next
URL參數。 這兩個選項是:
next
URL參數。 redirect_field_name = 'your_field_name'
更改視圖以發送正確的重定向字段名稱
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.