Django身份验证(自定义登录页面) [英] Django Authentication (Custom Login Page)
本文介绍了Django身份验证(自定义登录页面)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试编写自己的django登录页面。一切正常,直到我尝试登录时才重定向到主登录视图。
模板
{%扩展了 bdayremind-maininput.html%}
{%block main%}
< form class = form-horizontal name = LoginForm action = / login / method = post>
{%csrf_token%}
{下一个%的百分比}
<输入类型=隐藏 name =下一个 value = {{下一个}} />
{%endif%}
< div class = control-group>
< label class = control-label for =用户名>用户名< / label>
< div class = controls>
<输入类型=文本 id =用户名 value = {{用户名}}占位符=用户名>
< / div>
< / div>
< div class = control-group>
< label class = control-label for =密码>密码< / label>
< div class = controls>
<输入类型=密码 name =密码 id =密码占位符=密码>
< / div>
< / div>
< div class = control-group>
< div class = controls>
< button type = submit class = btn>登录< / button>
< / div>
< / div>
< / form>
{%endblock%}
URLS
urlpatterns = patterns('',
url(r'^ bdayremind_maininput / $','birthdayreminder.views.main'),
#登录/注销
(r'^ login / $','birthdayreminder.views.login_user'),
#(r'^ logout / $',logout_page),
)
视图
导入日期时间$ d $$来自django.http import *
来自django.shortcuts导入render_to_response
来自django.template import RequestContext
来自Birthdayreminder.models import *
from django.contrib.auth.decorators import import_required
from django.contrib.auth import authenticate,login
def login_user(request):
用户名=密码=''
(如果请求).POST:
用户名= request.POST.get('用户名')
密码= request.POST.get('密码')
用户=身份验证(用户名=用户名,密码ord = password)
如果用户不是None:
如果user.is_active:
login(请求,用户)
return HttpResponseRedirect('birthdayreminder.views.main')
return render_to_response('login.html',{'username':username},context_instance = RequestContext(request))
@login_required(login_url ='/ login /')
def main(request):
........
有什么想法吗?
解决方案
您忘记登录后将重定向添加到所需页面。 p>
Im trying to write my own django login page. Eveything is ok up to the point where I try to login and I just get redirected back to the main login view.
TEMPLATE
{% extends "bdayremind-maininput.html" %}
{% block main %}
<form class="form-horizontal" name="LoginForm" action="/login/" method="post">
{% csrf_token %}
{% if next %}
<input type="hidden" name="next" value="{{ next }}" />
{% endif %}
<div class="control-group">
<label class="control-label" for="username">Username</label>
<div class="controls">
<input type="text" id="username" value="{{username}}" placeholder="Username">
</div>
</div>
<div class="control-group">
<label class="control-label" for="password">Password</label>
<div class="controls">
<input type="password" name="password" id="password" placeholder="Password">
</div>
</div>
<div class="control-group">
<div class="controls">
<button type="submit" class="btn">Login</button>
</div>
</div>
</form>
{% endblock %}
URLS
urlpatterns = patterns('',
url(r'^bdayremind_maininput/$', 'birthdayreminder.views.main'),
# login / logout
(r'^login/$', 'birthdayreminder.views.login_user'),
#(r'^logout/$', logout_page),
)
VIEWS
import datetime
from django.http import *
from django.shortcuts import render_to_response
from django.template import RequestContext
from birthdayreminder.models import *
from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate, login
def login_user(request):
username = password = ''
if request.POST:
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return HttpResponseRedirect('birthdayreminder.views.main')
return render_to_response('login.html',{'username': username}, context_instance=RequestContext(request))
@login_required(login_url='/login/')
def main(request):
........
Any Ideas ?
解决方案
You forgot to add redirect to the desired page after login.
这篇关于Django身份验证(自定义登录页面)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文