Невозможно сохранить поле моей формы, получая ошибку снова и снова
Я создал простую форму регистрации, которая будет принимать данные, когда пользователь нажмет кнопку отправить, и сохранять их в базе данных. Но по какой-то причине мне удается ее валидировать. Я удалил все валидации и добавил их снова. Не уверен, где я что-то упускаю? он не сохраняется и выдает ошибку Error Processing Your Request. которая находится в блоке else кода
Forms.py:
class RegisterForm(UserCreationForm):
email = forms.EmailField(max_length=100,help_text='Enter Email Address', required=True,widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Email'}))
first_name = forms.CharField(max_length=100,help_text='Enter First Name', required=True,widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'First Name'}))
last_name = forms.CharField(max_length=100,help_text='Enter Last Name', required=True,widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Last Name'}))
username = forms.CharField(max_length=100,help_text='Enter Username', required=True,widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Username'}))
password = forms.CharField(max_length=200,help_text='Enter Password', required=True,widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password'}))
password2 = forms.CharField(max_length=200,help_text='Enter your Password again', required=True,widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password'}))
#check = forms.BooleanField(required = True)
class Meta:
model = User
fields = [
'username', 'email', 'first_name', 'last_name', 'password', 'password2' #, 'check'
]
Views.py:
def register(request):
if request.method == 'GET': #when you request a form it is in a get request
form = RegisterForm()
context = {'form' : form} #this creates a object which you want to send to the front end
return render(request, 'signup-login.html', context) # here we pushing that form to the html page
if request.method == 'POST': #when you submit a form it is POST request
form = RegisterForm(request.POST)
if form.is_valid():
form.save()
user = form.cleaned_data.get('username')
messages.success(request, 'Account was created for' + user)
return redirect('home_page')
else:
messages.error(request, 'Error Processing Your Request')
context = {'form' : form}
return render(request, 'signup-login.html', context)
return render(request, 'signup-login.html', {})
HTML форма (добавлена только HTML часть):
Код отображается, так что я предполагаю, что нет ошибки в html стороне этого
Что я пробовал:
Я пробовал несколько разных значений снова и снова, но оно не подтверждается.
Огромное спасибо за помощь!!!
Попробуйте добавить не полевые ошибки в HTML шаблон вашей формы и проверьте, будет ли выведено какое-либо сообщение.
<form action="." class="p-4 border rounded" method="POST">
{% csrf_token %}
{{ form.non_field_errors }}
<!-- ... your markup ... -->
</form>