Не сохраняются данные при отправке формы Django
Сделал форму регистрации на сайте. По нажатию на кнопку ничего не происходит. В терминале выдаёт строку 'fale'. Есть другой проект с точно таким же кодом, но там всё успешно работает
Перепробовал разные способы, ничего не помогает
forms.py
from django import forms
class Reg(forms.Form):
username = forms.CharField(
label = '1',
required = True,
widget = forms.TextInput(
attrs = {
'placeholder':'Логин',
'class': 'ireg'
}
)
)
first_name = forms.CharField(
label = '2',
required = True,
widget = forms.TextInput(
attrs={
'placeholder': 'ФИО',
'class': 'ireg'
}
)
)
email = forms.EmailField(
label = '3',
required = True,
widget = forms.EmailInput(
attrs ={
'placeholder':'Мыло',
'class': 'ireg'
}
)
)
password = forms.CharField(
label = '4',
required = True,
widget = forms.PasswordInput(
attrs ={
'placeholder':'Пароль',
'class': 'ireg'
}
)
)
password_confirm = forms.CharField(
label = '5',
required = True,
widget = forms.PasswordInput(
attrs={
'placeholder':'ПовторПароля',
'class': 'ireg'
}
)
)
views.py
from django.shortcuts import render, redirect
from test_app import forms
from django.contrib.auth import login
from django.contrib.auth.models import User
def reg(request):
if request.method == 'POST':
form = forms.Reg(request.POST)
if form.is_valid():
username = form.cleaned_data['username'],
first_name = form.cleaned_data['first_name'],
email = form.cleaned_data['email'],
password = form.cleaned_data['password'],
password_confirm = form.cleaned_data['password_confirm']
if password == password_confirm:
user = User.objects.create_user(username=username, first_name=first_name, email=email, password=password)
user.save()
login(request, user)
return redirect('prof.html')
else:
print('fale')
else:
form = forms.Reg()
return render(request, 'registr.html', {'form':form})
urls.py
path('index.html', views.index),
path('registr.html', views.reg),
registr.html
<body>
<form method="post" >
{% csrf_token %}
{{ form }}
<button type="submit">Registr</button>
</form>
</body>
</html>
Что происходит в терминале vc.code при попытке регистрации
[29/May/2024 13:10:42] "GET / HTTP/1.1" 200 243
[29/May/2024 13:10:45] "GET /registr.html HTTP/1.1" 200 1311
fale
[29/May/2024 13:10:55] "POST /registr.html HTTP/1.1" 200 1404
Ошибка заключалась в том, что поставил не нужные запятые при перечислении формы в файле views.py
Верный код:
def reg(request):
if request.method == 'POST':
form = forms.Reg(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
first_name = form.cleaned_data['first_name']
email = form.cleaned_data['email']
password = form.cleaned_data['password']
password_confirm = form.cleaned_data['password_confirm']
if password == password_confirm:
user = User.objects.create_user(username=username, first_name=first_name, email=email, password=password)
login(request, user)
return redirect('prof.html')
else:
print(username, first_name, email, password,password_confirm)
else:
form = forms.Reg()
return render(request, 'registr.html', {'form':form})