diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index 4a3405f3f0822..e9e3f4a0a3ff6 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -196,7 +196,7 @@ def validate(self, value, model_instance): return if self._choices and value: for option_key, option_value in self.choices: - if type(option_value) in (tuple, list): + if isinstance(option_value, (list, tuple)): # This is an optgroup, so look inside the group for options. for optgroup_key, optgroup_value in option_value: if value == optgroup_key: @@ -431,7 +431,7 @@ def _get_flatchoices(self): """Flattened version of choices tuple.""" flat = [] for choice, value in self.choices: - if type(value) in (list, tuple): + if isinstance(value, (list, tuple)): flat.extend(value) else: flat.append((choice,value)) diff --git a/django/forms/fields.py b/django/forms/fields.py index dd5ae1e427ab8..6d0fdea26e64e 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -621,7 +621,7 @@ def validate(self, value): def valid_value(self, value): "Check to see if the provided value is a valid choice" for k, v in self.choices: - if type(v) in (tuple, list): + if isinstance(v, (list, tuple)): # This is an optgroup, so look inside the group for options for k2, v2 in v: if value == smart_unicode(k2):