mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Revert "Fixed #19303 -- Fixed ModelAdmin.formfield_overrides on fields with choices"
This reverts commit 9d1987d767.
			
			
This commit is contained in:
		| @@ -147,7 +147,6 @@ class BaseModelAdmin(six.with_metaclass(forms.MediaDefiningClass)): | |||||||
|             return cls.checks_class().check(cls, model, **kwargs) |             return cls.checks_class().check(cls, model, **kwargs) | ||||||
|  |  | ||||||
|     def __init__(self): |     def __init__(self): | ||||||
|         self._orig_formfield_overrides = self.formfield_overrides |  | ||||||
|         overrides = FORMFIELD_FOR_DBFIELD_DEFAULTS.copy() |         overrides = FORMFIELD_FOR_DBFIELD_DEFAULTS.copy() | ||||||
|         overrides.update(self.formfield_overrides) |         overrides.update(self.formfield_overrides) | ||||||
|         self.formfield_overrides = 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 |         # 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. |         # admin widgets - we just need to use a select widget of some kind. | ||||||
|         if db_field.choices: |         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) |             return self.formfield_for_choice_field(db_field, request, **kwargs) | ||||||
|  |  | ||||||
|         # ForeignKey or ManyToManyFields |         # ForeignKey or ManyToManyFields | ||||||
|   | |||||||
| @@ -142,23 +142,6 @@ class AdminFormfieldForDBFieldTests(TestCase): | |||||||
|         self.assertEqual(f2.widget.attrs['maxlength'], '20') |         self.assertEqual(f2.widget.attrs['maxlength'], '20') | ||||||
|         self.assertEqual(f2.widget.attrs['size'], '10') |         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): |     def testFieldWithChoices(self): | ||||||
|         self.assertFormfield(models.Member, 'gender', forms.Select) |         self.assertFormfield(models.Member, 'gender', forms.Select) | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user