From 9cc003fa6f7d9de8c906619d236f7a101b75f1e4 Mon Sep 17 00:00:00 2001 From: Nick Pope Date: Thu, 20 Jul 2023 09:50:21 +0100 Subject: [PATCH] Revert "Refs #31262 -- Delegated RelatedFieldWidgetWrapper._choices handling to wrapped widget." This reverts commit 54f4eb603d148263ea66856174b6530d11937da5. --- django/contrib/admin/widgets.py | 8 -------- django/forms/fields.py | 4 ++-- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/django/contrib/admin/widgets.py b/django/contrib/admin/widgets.py index a453318a99eb4..fc0cd941d12cf 100644 --- a/django/contrib/admin/widgets.py +++ b/django/contrib/admin/widgets.py @@ -302,14 +302,6 @@ def choices(self): def choices(self, value): self.widget.choices = value - @property - def _choices(self): - return self.widget._choices - - @_choices.setter - def _choices(self, value): - self.widget._choices = value - def get_related_url(self, info, action, *args): return reverse( "admin:%s_%s_%s" % (info + (action,)), diff --git a/django/forms/fields.py b/django/forms/fields.py index 3ae338fe2692e..3594287100642 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -885,8 +885,8 @@ def choices(self): @choices.setter def choices(self, value): # Setting choices on the field also sets the choices on the widget. - # Note that we bypass the property setter to avoid re-normalizing. - self._choices = self.widget._choices = normalize_field_choices(value) + # Note that the property setter for the widget will re-normalize. + self._choices = self.widget.choices = normalize_field_choices(value) def to_python(self, value): """Return a string."""