SelectDateWidget и неполное заполнение даты (например, выбран только месяц) - Python
Формулировка задачи:
Django 1.11
Есть такой SelectDateWidget. Прикольный, конечно. Но я что-то не могу с ним справиться. Если в модели у поля поставить blank=True, то появляются "---" вместо месяца, дня и года, соответственно. Вот дока: https://docs.djangoproject.com/en/1....et.empty_label Посмотрите, пожалуйста, на код: я поставил две точки останова. И посиотрите на картинку. При этом если дата заполнена полностью или не заполнена вовсе, то я останавливаюсь на обеих точках останова. А вот если я выбираю только месяц, то отладчик не останавливается ни на точке останова № 1, ни на точке № 2. А взрывается уже в CreateView. Я понять ничего не могу: это же форма, она должна уметь делать валидацию. Ничего себе - во вьюху пропускаю ошибку и поймать не могу.Выручайте, пожалуйста: как сделать валидацию формы, чтобы ловила эту ошибку?
Решение задачи: «SelectDateWidget и неполное заполнение даты (например, выбран только месяц)»
textual
Листинг программы
Traceback (most recent call last): File "/home/michael/PycharmProjects/venv/photoarchive/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner response = get_response(request) File "/home/michael/PycharmProjects/venv/photoarchive/lib/python3.6/site-packages/django/core/handlers/base.py", line 187, in _get_response response = self.process_exception_by_middleware(e, request) File "/home/michael/PycharmProjects/venv/photoarchive/lib/python3.6/site-packages/django/core/handlers/base.py", line 185, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/michael/PycharmProjects/venv/photoarchive/lib/python3.6/site-packages/django/views/generic/base.py", line 68, in view return self.dispatch(request, *args, **kwargs) File "/home/michael/PycharmProjects/venv/photoarchive/lib/python3.6/site-packages/django/contrib/auth/mixins.py", line 56, in dispatch return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs) File "/home/michael/PycharmProjects/photoarchive_2/photoarchive/general/view_mixins.py", line 61, in dispatch **kwargs); File "/home/michael/PycharmProjects/venv/photoarchive/lib/python3.6/site-packages/django/views/generic/base.py", line 88, in dispatch return handler(request, *args, **kwargs) File "/home/michael/PycharmProjects/venv/photoarchive/lib/python3.6/site-packages/django/views/generic/edit.py", line 217, in post return super(BaseCreateView, self).post(request, *args, **kwargs) File "/home/michael/PycharmProjects/venv/photoarchive/lib/python3.6/site-packages/django/views/generic/edit.py", line 182, in post if form.is_valid(): File "/home/michael/PycharmProjects/photoarchive_2/photoarchive/framedates/forms.py", line 79, in is_valid self.handle_from_through_date("through") File "/home/michael/PycharmProjects/photoarchive_2/photoarchive/framedates/forms.py", line 55, in handle_from_through_date valid_day = self.ceil_day(user_day, user_month, user_year) File "/home/michael/PycharmProjects/photoarchive_2/photoarchive/framedates/forms.py", line 39, in ceil_day number_of_days_in_month = get_number_of_days_in_month(year_int, month_int) File "/home/michael/PycharmProjects/photoarchive_2/photoarchive/general/utils.py", line 51, in get_number_of_days_in_month __, number_of_days_in_month = calendar.monthrange(year_int, month_int) File "/usr/lib/python3.6/calendar.py", line 124, in monthrange day1 = weekday(year, month, 1) File "/usr/lib/python3.6/calendar.py", line 116, in weekday return datetime.date(year, month, day).weekday() ValueError: year 0 is out of range [17/Jun/2017 09:30:24] "POST /frames/13/framedates/create/ HTTP/1.1" 500 21115
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д