Return成功后到请求的页面@login_required
Return to the requested page after successfull @login_required
假设这是 @login_required(login_url='/account/required_login/')
之后的 url:
http://ngoksy.com/accounts/login_required/?next=/article/
查看login_require:
def required_login(request):
return render(request, 'required_login.html')
我尝试添加'next',喜欢它here。但是没有用。:
def required_login(request):
c = {'next' : request.GET.get('next', '/')}
return render(request, 'login_required.html', c)
我有不同的登录模板和另一个由 @login_required
重定向的匿名用户模板。
required_login.html:
<h2>Login required! You must login to view the content.</h2>
<form action="/accounts/auth/" method="post">
{%csrf_token%}
<label for="username">Username:</label>
<input type="text" name="username" id="username" value="">
<label for="password">Password:</label>
<input type="password" name="password" id="password" value="">
<input type="submit" value="LOGIN">
</form>
我想在 login_required()
登录成功后传递 next
变量,然后进入文章页面。我该怎么做?
我最终得到了这个。
required_login
的观看次数:
def required_login(request):
c = {'next' : request.GET.get('next', '/')}
return render(request, 'required_login.html', c)
在模板中(注意 next
的隐藏输入):
<form action="/accounts/auth/" method="post">
{%csrf_token%}
<label for="username">Username:</label>
<input type="text" name="username" id="username" value="">
<label for="password">Password:</label>
<input type="password" name="password" id="password" value="">
<input type="hidden" name="next" value="{{ next }}"/>
<input type="submit" value="LOGIN">
</form>
然后在 auth_view
的视图中:
def auth_view(request):
username = request.POST.get('username','')
password = request.POST.get('password','')
user = auth.authenticate(username=username, password=password)
if user is not None:
auth.login(request, user)
if request.POST.get('next') != '':
return HttpResponseRedirect(request.POST.get('next'))
else:
return HttpResponseRedirect('/')
else:
return HttpResponseRedirect('/accounts/invalid_login')
我希望这对像我这样的其他菜鸟有所帮助! :)
假设这是 @login_required(login_url='/account/required_login/')
之后的 url:
http://ngoksy.com/accounts/login_required/?next=/article/
查看login_require:
def required_login(request):
return render(request, 'required_login.html')
我尝试添加'next',喜欢它here。但是没有用。:
def required_login(request):
c = {'next' : request.GET.get('next', '/')}
return render(request, 'login_required.html', c)
我有不同的登录模板和另一个由 @login_required
重定向的匿名用户模板。
required_login.html:
<h2>Login required! You must login to view the content.</h2>
<form action="/accounts/auth/" method="post">
{%csrf_token%}
<label for="username">Username:</label>
<input type="text" name="username" id="username" value="">
<label for="password">Password:</label>
<input type="password" name="password" id="password" value="">
<input type="submit" value="LOGIN">
</form>
我想在 login_required()
登录成功后传递 next
变量,然后进入文章页面。我该怎么做?
我最终得到了这个。
required_login
的观看次数:
def required_login(request):
c = {'next' : request.GET.get('next', '/')}
return render(request, 'required_login.html', c)
在模板中(注意 next
的隐藏输入):
<form action="/accounts/auth/" method="post">
{%csrf_token%}
<label for="username">Username:</label>
<input type="text" name="username" id="username" value="">
<label for="password">Password:</label>
<input type="password" name="password" id="password" value="">
<input type="hidden" name="next" value="{{ next }}"/>
<input type="submit" value="LOGIN">
</form>
然后在 auth_view
的视图中:
def auth_view(request):
username = request.POST.get('username','')
password = request.POST.get('password','')
user = auth.authenticate(username=username, password=password)
if user is not None:
auth.login(request, user)
if request.POST.get('next') != '':
return HttpResponseRedirect(request.POST.get('next'))
else:
return HttpResponseRedirect('/')
else:
return HttpResponseRedirect('/accounts/invalid_login')
我希望这对像我这样的其他菜鸟有所帮助! :)