Отображение ошибки формы в соответствующем поле формы
Возможно ли отобразить ошибку формы в соответствующей форме ошибки поля? И если нет, то как можно настроить имя поля при повышении ошибки поля?
Например, у меня есть система регистрации/логина, где я использую поле email
в качестве идентификатора. Это потому, что я использую пользовательскую систему регистрации/логина, с BaseUserManager
и AbstractBaseUser
, например:
models.py
class User(AbstractBaseUser):
username = models.CharField(
verbose_name = u'Nome',
max_length=33
)
#identifier
email = models.EmailField(
verbose_name = u'Email',
max_length=255,
unique=True,
)
#....
forms.py
class LoginForm(AuthenticationForm):
username = forms.EmailField(
label="Email",
required=True,
widget=forms.TextInput(
attrs={'placeholder': 'Email'}
))
password = forms.CharField(
label=False,
max_length=50,
required=True,
widget=forms.PasswordInput(
attrs={'placeholder': 'Senha'}
))
class Meta:
model = User
fields = ['email', 'password']
Проблема в том, что когда username
поле формы имеет ошибку, сообщение отображается: username...error
, но мне нужно показать Email...error
, желательно внутри соответствующего поля. Даже при verbose_name = u'Email' in model.field, the error message display
username...errror...
Итак: 1- Как я могу отобразить ошибку внутри соответствующего поля формы как placeholder or value
и 2 - Как настроить form.field.name.error при появлении ошибки?
Добавьте validate fn в класс вашей формы для валидации следующим образом:
class LoginForm(AuthenticationForm):
...
def validate(self, value):
"""Check if value consists only of valid emails."""
# Use the parent's handling of required fields, etc.
super().validate(value)
for username in value:
validate_username(username)
validate_password(password)