Я хочу сделать проверку формы ajax для отображения ошибок. Я посмотрел много примеров, но некоторые из них старые и не работают, а другие я не понимаю. Ниже приведен код, пожалуйста, помогите с реализацией запросов ajax.
views.py
def register(request):
if request.method == 'POST':
user_form = UserRegistrationForm(request.POST)
if user_form.is_valid():
# Create a new user object but avoid saving it yet
new_user = user_form.save(commit=False)
# Set the chosen password
new_user.set_password(user_form.cleaned_data['password'])
# Save the User object
new_user.save()
return HttpResponse('IZI')
else:
print(user_form.errors)
user_form = UserRegistrationForm()
# errors = user_form.errors
data = {'user_form': user_form, 'errors': user_form.errors}
return render(request, 'registration.html', data)
# return HttpResponse(simplejson.dumps(errors))
else:
user_form = UserRegistrationForm()
return render(request, 'registration.html', {'user_form': user_form})
models.py
class TestUser(AbstractUser):
phone = PhoneNumberField(null=False, blank=False, unique=True)
class Meta:
db_table = '"fyzzys"."users"'
forms.py
class UserRegistrationForm(forms.ModelForm):
password = forms.CharField(label='Password', widget=forms.PasswordInput)
password2 = forms.CharField(label='Repeat password', widget=forms.PasswordInput)
phone = PhoneNumberField(region='RU', required='true')
email = forms.CharField(error_messages='')
class Meta:
model = TestUser
fields = ('username', 'first_name', 'email', 'phone')
def clean_password2(self):
cd = self.cleaned_data
if cd['password'] != cd['password2']:
raise forms.ValidationError('Passwords don\'t match.')
return cd['password2']