From 5046c110cfbf5e867fec47c8c68677a76c9e1b68 Mon Sep 17 00:00:00 2001
From: Tim Graham <timograham@gmail.com>
Date: Mon, 2 Jun 2014 07:05:38 -0400
Subject: [PATCH] Revert "Fixed #19303 -- Fixed ModelAdmin.formfield_overrides
 on fields with choices"

This reverts commit 9d1987d7679165ad3a7c2b713a8a488cc1421905.
---
 django/contrib/admin/options.py |  4 ----
 tests/admin_widgets/tests.py    | 17 -----------------
 2 files changed, 21 deletions(-)

diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py
index 164b245a7f1..28c7ac47612 100644
--- a/django/contrib/admin/options.py
+++ b/django/contrib/admin/options.py
@@ -147,7 +147,6 @@ class BaseModelAdmin(six.with_metaclass(forms.MediaDefiningClass)):
             return cls.checks_class().check(cls, model, **kwargs)
 
     def __init__(self):
-        self._orig_formfield_overrides = self.formfield_overrides
         overrides = FORMFIELD_FOR_DBFIELD_DEFAULTS.copy()
         overrides.update(self.formfield_overrides)
         self.formfield_overrides = overrides
@@ -164,9 +163,6 @@ class BaseModelAdmin(six.with_metaclass(forms.MediaDefiningClass)):
         # If the field specifies choices, we don't need to look for special
         # admin widgets - we just need to use a select widget of some kind.
         if db_field.choices:
-            # see #19303 for an explanation of self._orig_formfield_overrides
-            if db_field.__class__ in self._orig_formfield_overrides:
-                kwargs = dict(self._orig_formfield_overrides[db_field.__class__], **kwargs)
             return self.formfield_for_choice_field(db_field, request, **kwargs)
 
         # ForeignKey or ManyToManyFields
diff --git a/tests/admin_widgets/tests.py b/tests/admin_widgets/tests.py
index d07e90a1be8..35fc04e9f84 100644
--- a/tests/admin_widgets/tests.py
+++ b/tests/admin_widgets/tests.py
@@ -142,23 +142,6 @@ class AdminFormfieldForDBFieldTests(TestCase):
         self.assertEqual(f2.widget.attrs['maxlength'], '20')
         self.assertEqual(f2.widget.attrs['size'], '10')
 
-    def testFormfieldOverridesWidgetInstancesForFieldsWithChoices(self):
-        """
-        Test that widget is actually overridden for fields with choices.
-        (#194303)
-        """
-        class MemberAdmin(admin.ModelAdmin):
-            formfield_overrides = {
-                CharField: {'widget': forms.TextInput}
-            }
-        ma = MemberAdmin(models.Member, admin.site)
-        name_field = models.Member._meta.get_field('name')
-        gender_field = models.Member._meta.get_field('gender')
-        name = ma.formfield_for_dbfield(name_field, request=None)
-        gender = ma.formfield_for_dbfield(gender_field, request=None)
-        self.assertIsInstance(name.widget, forms.TextInput)
-        self.assertIsInstance(gender.widget, forms.TextInput)
-
     def testFieldWithChoices(self):
         self.assertFormfield(models.Member, 'gender', forms.Select)