создали объект с некоторыми проверками. Я хочу правильно отобразить ошибку в HTML, например. Если я получаю сообщение об ошибке для поля пароля, я хочу отобразить его перед этим полем. Я делюсь своим кодом и снимком экрана со страницей после того, как я получил сообщение об ошибке в форме. Короче говоря, я хочу управлять ошибками форм в HTML так, как я хочу.
forms.py
class UsersForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput,validators=[validators.MinLengthValidator(8),])
password_1 = forms.CharField(widget=forms.PasswordInput,label='Confirm Password')
class Meta:
model = Users
fields = ('username','first_name','last_name','date_of_birth')
labels = {
'date_of_birth': ('D.O.B'),
}
widgets = {
'date_of_birth': DateInput(attrs={'type': 'date'})
}
views.py
def create_user(request):
if request.method == 'POST':
form = UsersForm(request.POST)
u = User.objects.get(username=request.user.get_username())
if request.POST.get('password') != request.POST.get('password_1'):
messages.error(request,'password mismatch, try again')
return render(request,'login.html',{'form':form})
elif form.is_valid():
cUser = Users.objects.create(username=form.cleaned_data['username'],
first_name=form.cleaned_data['first_name'],
last_name=form.cleaned_data['last_name'],
password=make_password(form.cleaned_data['password']),
date_of_birth=form.cleaned_data['date_of_birth'],
created_by= u,)
cUser.save()
else:
return render(request,'login.html',{'form':form})
form = UsersForm()
context = {"form":form}
return render(request,'login.html',context)
login.html
<code> <!DOCTYPE html>
<html>
<body>
<pre><center>
<h1>User Creation Form</h1>
<form action = '' method="post">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" name="register">
<h3>
{% for message in messages %}
{{ message }}
{% endfor %}
</h3>
</form>
</center>