【发布时间】:2015-03-13 06:44:49
【问题描述】:
我用电子邮件和其他字段扩展了UserCreationForm,以便我可以使用用户名和电子邮件对用户进行身份验证。
forms.py:
class UserCreationForm(UserCreationForm):
class Meta:
model = User
fields = ('first_name', 'last_name', 'username', 'email',)
views.py:
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)
return HttpResponseRedirect('/')
elif:
user = auth.authenticate(email=username, password=password)
if user is not None:
auth.login(request, user)
return HttpResponseRedirect('/')
else:
return HttpResponseRedirect('/accounts/invalid_login')
html:
<form action="/accounts/auth/" method="post">
{%csrf_token%}
<label for="name">Email or Username:</label>
<input type="text" name="name" id="name" value="">
<label for="password">Password:</label>
<input type="password" name="password" id="password" value="">
<input type="submit" value="LOGIN">
</form>
在视图中,我尝试将username 和email 作为name 的表单输入,并检查用户名和密码是否经过身份验证。如果不是,则检查电子邮件和密码是否经过身份验证。但它不起作用。我该如何解决这个问题?请帮助我。谢谢。
【问题讨论】:
标签: django authentication django-views django-users