Как запретить Django принимать недопустимые даты и преобразовывать их? - PullRequest
0 голосов
/ 07 октября 2011

У меня есть следующая форма:

class GuaranteesForm(forms.ModelForm):
    birth_date = forms.DateField(input_formats=['%d/%m/%Y'], required=True)

Однако, если пользователь вставляет недопустимую дату, например: 13/13/1999, вместо создания исключения, Django конвертирует дату, выполняя модуль дня иполя месяца и добавление месяцев и лет соответственно.В этом примере, поскольку месяц больше 12, Дата, которая будет сохраняться, будет 13 января 2000 года.

Я бы предпочел получить исключение InvalidFormException, есть ли способ предотвратить такое поведение?

Я использую Django в Jython (DOJ).

Я уже реализовал решение с помощью clean_birth_date, но я думаю, что оно довольно уродливо.То, что я ищу, это способ предотвратить подобное поведение с датами в целом.

1 Ответ

1 голос
/ 07 октября 2011

Вы можете вызвать исключение вручную, когда очищает определенное поле формы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...