diff options
| author | Nick Pope <nick@nickpope.me.uk> | 2023-10-16 19:07:49 +0100 |
|---|---|---|
| committer | Natalia <124304+nessita@users.noreply.github.com> | 2023-10-23 14:53:13 -0300 |
| commit | bbe90f3c00eb29a8e86b1b638466029def7f444a (patch) | |
| tree | 65da457c751460bb3d42e56d557e34a5c219a7bb /django/db/models/fields | |
| parent | 711c0547224de00aee39b8720c706ac4977e89fd (diff) | |
[5.0.x] Refs #34899 -- Extracted Field.flatchoices to flatten_choices helper function.
Co-authored-by: Natalia Bidart <124304+nessita@users.noreply.github.com>
Backport of 74afcee234f8be989623ccc7c28b9fb97fb548f0 from main
Diffstat (limited to 'django/db/models/fields')
| -rw-r--r-- | django/db/models/fields/__init__.py | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index f15b5856bf..6174b7bc98 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -15,7 +15,11 @@ from django.db import connection, connections, router from django.db.models.constants import LOOKUP_SEP from django.db.models.query_utils import DeferredAttribute, RegisterLookupMixin from django.utils import timezone -from django.utils.choices import CallableChoiceIterator, normalize_choices +from django.utils.choices import ( + CallableChoiceIterator, + flatten_choices, + normalize_choices, +) from django.utils.datastructures import DictWrapper from django.utils.dateparse import ( parse_date, @@ -1080,19 +1084,10 @@ class Field(RegisterLookupMixin): """ return str(self.value_from_object(obj)) - def _get_flatchoices(self): + @property + def flatchoices(self): """Flattened version of choices tuple.""" - if self.choices is None: - return [] - flat = [] - for choice, value in self.choices: - if isinstance(value, (list, tuple)): - flat.extend(value) - else: - flat.append((choice, value)) - return flat - - flatchoices = property(_get_flatchoices) + return list(flatten_choices(self.choices)) def save_form_data(self, instance, data): setattr(instance, self.name, data) |
