Это Django проект. После ввода имени пользователя и пароля страница входа обновляется и перезагружается вместо того, чтобы перенести меня на домашнюю страницу. html. Когда я выполнил диагностику c в представлении с использованием print (form.is_valid ()), он предоставил мне базовый код HTML, который составляет встроенный Django {{form}}, в терминале , Однако я не могу понять, где именно лежит ошибка.
1. Вид входа в систему
def authentication(request):
print(request.method)
if request.method=='POST':
form=LoginForm(request.POST)
print(form.errors)
print(form)
print(form.is_valid())
if form.is_valid():
form.save()
username=form.cleaned_data.get('username')
password=form.cleaned_data.get('password')
user=authenticate(username=username, password=password)
login(request, user)
return HttpResponse('Success')
else:
print('code failed')
else:
form=LoginForm()
return render(request, 'TCloneTemplates/login.html', {'form':form})
2.Forms.py
class LoginForm(AuthenticationForm):
username = forms.EmailField(widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': '', 'id': 'hello'}))
password = forms.CharField(widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': '', 'id': 'hi',}))
def is_valid(self):
form = super(LoginForm, self).is_valid()
for f, error in self.errors.items():
if f != '__all__':
self.fields[f].widget.attrs.update({'class': 'error', 'value': strip_tags(error)})
return form
3.Вход. html
<body>
<div class="pic">
<form method="POST">
{% block content %}
{% csrf_token %}
{{ form.non_field_errors }}
{{form}}
<button type="submit">Get Inside</button>
{% endblock content %}
</form>
</div>
</body>
4. URL-адрес, по которому я туда попал
path('loginer/', views.authentication, name='loginer')
Диагностика c сообщения в терминале
POST
<tr><th><label for="hello">Username:</label></th><td><input type="text" name="username" class="form-control" placeholder="" id="hello" maxlength="150" required></td></tr>
<tr><th><label for="hi">Password:</label></th><td><input type="password" name="password" class="form-control" placeholder="" id="hi" required></td></tr>
False
code failed