Сообщение о проверке формы для поля подтверждения пароля
У меня есть следующий код в forms.py файле.
from django.contrib.auth.forms import UserCreationForm
from .models import User
class CustomUserCreationForm(UserCreationForm):
class Meta:
model = User
fields = ('first_name','last_name','email','date_of_birth', 'gender', 'user_type', 'phone', 'address','photo', 'password' )
error_messages = {
field: {
'required': f"{field.replace('_', ' ').title()} is required."
}
for field in fields
}
Я хочу добавить 'password_confirmation'
поле в fields кортеж.
Я хотел бы использовать сообщение о валидации формы, как показано ниже, в моем HTML-шаблоне.
<label class="form-label">PassWord Confirmation</label>
<input type="password" class="form-control" name="password2" />
{% if form.confirm_password.errors %}
<div class="alert alert-danger">{{ form.confirm_password.errors }}</div>
{% endif %}
Но я получаю ошибки django.core.exceptions.FieldError: Unknown field(s) () specified for User
.
Джанго UserCreationForm
ожидает password1
и password2
для пароля и подтверждения пароля соответственно. UserCreationForm
уже включает валидацию, чтобы убедиться, что эти два параметра совпадают.
Не добавляйте password_confirmation
к кортежу fields
. Вместо этого используйте поля password1
и password2
, которые уже включены в UserCreationForm
.
from django.contrib.auth.forms import UserCreationForm
from .models import User
class CustomUserCreationForm(UserCreationForm):
class Meta:
model = User
fields = ('first_name','last_name','email','date_of_birth', 'gender', 'user_type', 'phone', 'address','photo')
error_messages = {
fields: {
'required': f"{field.replace('_', ' ').title()} is required."
}
for field in fields
}
В шаблоне HTML используйте password2
для поля подтверждения пароля:
<label class="form-label">PassWord Confirmation</label>
<input type="password" class="form-control" name="password2" />
{% if form.password2.errors %}
<div class="alert alert-danger">{{ form.password2.errors }}</div>
{% endif %}