diff options
Diffstat (limited to 'django/forms/widgets.py')
| -rw-r--r-- | django/forms/widgets.py | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/django/forms/widgets.py b/django/forms/widgets.py index 282ba0b481..599d1e8011 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -5,6 +5,7 @@ HTML Widget classes import copy import datetime import re +from contextlib import suppress from itertools import chain from django.conf import settings @@ -618,10 +619,8 @@ class ChoiceWidget(Widget): def value_from_datadict(self, data, files, name): getter = data.get if self.allow_multiple_selected: - try: + with suppress(AttributeError): getter = data.getlist - except AttributeError: - pass return getter(name) def format_value(self, value): @@ -977,12 +976,13 @@ class SelectDateWidget(Widget): year, month, day = value.year, value.month, value.day elif isinstance(value, str): if settings.USE_L10N: + input_format = get_format('DATE_INPUT_FORMATS')[0] try: - input_format = get_format('DATE_INPUT_FORMATS')[0] d = datetime.datetime.strptime(value, input_format) - year, month, day = d.year, d.month, d.day except ValueError: pass + else: + year, month, day = d.year, d.month, d.day match = self.date_re.match(value) if match: year, month, day = [int(val) for val in match.groups()] |
