У меня есть модель, которая содержит 2 поля типа PositiveSmallIntegerField
. И у меня есть ModelForm
для этой модели и этих полей.Проверка поля формы - кто делает ошибку?
Моя проверка работает отлично. Но если я набираю отрицательное число или буквенно-цифровую строку, я получаю ошибку проверки как своего рода всплывающее окно (см. Изображения ниже). Мой вопрос: является ли ошибка проверки, отображаемая браузером? Должна ли ошибка отображаться Django как HTML-код? И могу ли я перевести эту ошибку с помощью переводов django?
Кроме того, в моем clean
методе формы У меня есть пользовательская проверка, и я делаю это:
if cleaned_data['capacity_min'] > cleaned_data['capacity_max']:
raise ValidationError(_("Some message"))
я могу перевести эту и визуализируются как я ожидался, простой HTML-код страницы
Спасибо
Это то, что происходит с светлячок
Это то, что происходит с Google Chrome
Но если браузер имеет преимущество перед тем Джанго, это означает, что ошибки поля никогда не будут быть вынесены? и это полностью зависит от того, как клиент (пользователь) настроил свой браузер? –
Да, современные браузеры делают некоторые проверки для '' полей, и вы не можете предотвратить это поведение. Но вы можете использовать 'type =" text "' вместо атрибута 'type =" number "' в вашей форме. – catavaran
Я добавил пример переопределения виджета по умолчанию для полей формы. См. Документы: https://docs.djangoproject.com/en/1.7/topics/forms/modelforms/#overriding-the-default-fields – catavaran