I have a form
class RegisterForm(UserCreationForm):
current_year = datetime.now().year + 1
result = current_year - 12
year_range = range(1930, result)
profile_image = forms.ImageField(required=False)
address = forms.CharField(max_length=130, required=False)
date_of_birth = forms.DateField(
required=False, widget=forms.SelectDateWidget(years=year_range))
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2',
'profile_image', 'address', 'date_of_birth']
def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
# change labels
self.fields['username'].label = "Ім'я користувача"
self.fields['email'].label = 'Електронна пошта'
self.fields['password1'].label = 'Пароль'
self.fields['password2'].label = 'Підтвердження пароля'
self.fields['profile_image'].label = 'Ваше фото'
self.fields['address'].label = "Адреса проживання"
self.fields['date_of_birth'].label = "Дата народження"
# change help_text
self.fields['username'].help_text = 'Вимагається. 150 символів або менше. Лише літери, цифри та @/./+/-/_.'
self.fields['email'].help_text = ''
self.fields['password1'].help_text = 'Ваш пароль повинен містити не менше 8 символів. Також пароль не може бути повністю цифровим.'
self.fields['password2'].help_text = 'Для підтвердження введіть той самий пароль, що й раніше.'
self.fields['profile_image'].help_text = "Не обов'язково для заповненння."
self.fields['address'].help_text = "Не обов'язково для заповненння."
self.fields['date_of_birth'].help_text = "Не обов'язково для заповненння."
# errors_messages
self.fields['username'].errors_messages = {
'required': "Поле обов'язкове для заповнення.",
'unique': "Користувач із таким ім'ям вже існує."
}
self.fields['email'].errors_messages = {
'required': "Поле обов'язкове для заповнення.",
'unique': "Користувач із таким ім'ям вже існує."
}
self.fields['password1'].error_messages = {
'password_too_short': 'Пароль повинен містити не менше 8 символів.',
'password_entirely_numeric': 'Пароль не може бути повністю цифровим.',
'password_common': 'Пароль занадто загальний. Спробуйте використати більш специфічний пароль.'
}
self.fields['password2'].error_messages = {
'password_mismatch': 'Введені паролі не співпадають.'
}
tempate register.html
{% block content %}
<div>
<form action="" method="post">
{% csrf_token %}
{% for form_field in form %}
<div>
{% if form_field.errors %}
{{ form_field.errors }}
{% endif %}
{{ form_field.label }}
{{ form_field }}
</div>
{% endfor %}
<br>
<button type="submit">Зареєструватися</button>
</form>
</div>
{% endblock %}
i want to use the default errors_messages but change the text language. I somehow wrote changes in the init method, but for some reason they are not applied. Maybe I’ve chosen the wrong keys in the error_messages dictionary for each field