Python django中使用自定义身份验证时出现用户名错误
我试图在Django中创建自定义身份验证,其中标识符是电子邮件,有一个名为name的必填字段和一个password字段。登录视图工作正常,但是我从表单中得到一个错误Python django中使用自定义身份验证时出现用户名错误,python,html,django,Python,Html,Django,我试图在Django中创建自定义身份验证,其中标识符是电子邮件,有一个名为name的必填字段和一个password字段。登录视图工作正常,但是我从表单中得到一个错误username 这是我的观点 def auth_login(request): if request.method == 'POST': email = request.POST['email'] password = request.POST['password'] user
username
这是我的观点
def auth_login(request):
if request.method == 'POST':
email = request.POST['email']
password = request.POST['password']
user = authenticate(email=email, password=password)
if user is not None:
login(request, user)
return HttpResponseRedirect("/tasks/")
else:
return HttpResponse('Invalid login.')
else:
form = UserCreationForm()
return render(request, "registration/login.html", {
'form': form,
})
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
new_user = form.save()
new_user = authenticate(email=request.POST['email'], password=request.POST['password1'])
login(request, new_user)
return HttpResponseRedirect("/tasks/")
else:
form = UserCreationForm()
return render(request, "registration/register.html", {
'form': form,
})
这是我的register.html
<form class="form-signin" role="form" method="post" action="">
{% csrf_token %}
<h2 class="form-signin-heading">Create an account</h2>
<input type="text" name="name" maxlength="30" class="form-control" placeholder="Username" required autofocus>
<br>
<input type="email" name="email" class="form-control" placeholder="Email" required>
<br>
<input type="password" name="password1" maxlength="4096" class="form-control" placeholder="Password" required>
<br>
<input type="password" name="password2" maxlength="4096" class="form-control" placeholder="Password confirmation" required>
<input type="hidden" name="next" value="/tasks/" />
<br>
<button class="btn btn-lg btn-primary btn-block" type="submit">Create the account</button>
</form>
{% if form.errors %}
{% for error in form.errors %}
{{ error }}
{% endfor %}
{% endif %}
{%csrf_令牌%}
创建帐户
创建帐户
{%if form.errors%}
{%form.errors%}
{{error}}
{%endfor%}
{%endif%}
这将打印错误
用户名
。这里怎么了?您需要创建自己的表单,而不是使用django自己的UserCreationForm
。Django的表单要求您具有用户名
您没有用户名,因此Django的表单不适用于您。所以创造你自己的。另请参见,尤其是答案 html表单中没有
username
字段,这在UserCreationForm
中可能是必需的。如果是自定义身份验证系统,注册视图将如何工作?