我想创建一个登录视图,其形式与django.contrib.auth的用户模型有关。
但是当选中if form.is_valid():
时,它总是返回False,并且没有错误。
使用Django 2.2和Python 3.7
这是我的代码:
class LoginForm(AuthenticationForm):
class Meta:
model = User
fields = ('username', 'password')
class LoginView(View):
def get(self, req):
form = LoginForm()
viewitems = {
'title': 'Login',
'form': form
}
return render(req, 'login.html', viewitems)
def post(self, req):
form = LoginForm(req.POST)
viewitems = {
'title': 'Login',
'form': form
}
if form.is_valid():
# some code to login.
# never access to this part now.
else:
return render(req, 'login.html', viewitems)
{% block content %}
<div align="center">
<h2>Login.</h2>
<form method="post">
{% csrf_token %}
{% for field in form %}
<p>
{{ field.label_tag }}<br>
{{ field }}
{% for error in field.errors %}
<p style="color: red">{{ error }}</p>
{% endfor %}
</p>
{% endfor %}
<button type="submit">Login</button>
</form>
</div>
{% endblock %}
这很奇怪,但是注册表格对我来说很好。