Я хочу сделать вид входа в систему, с формой, относящейся к модели пользователя 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 %}
Это странно, но регистрационная форма отлично работает для меня.