mirror of
https://github.com/django/django.git
synced 2025-10-24 14:16:09 +00:00
Fixed #18681 -- BaseModelAdmin.get_form and InlineModelAdmin.get_formset no longer bypass get_fieldsets
Thanks msopacua for the report.
This commit is contained in:
@@ -64,6 +64,30 @@ class ModelAdminTests(TestCase):
|
||||
self.assertEqual(ma.get_fieldsets(request, self.band),
|
||||
[(None, {'fields': ['name', 'bio', 'sign_date']})])
|
||||
|
||||
def test_get_fieldsets(self):
|
||||
# Test that get_fieldsets is called when figuring out form fields.
|
||||
# Refs #18681.
|
||||
|
||||
class BandAdmin(ModelAdmin):
|
||||
def get_fieldsets(self, request, obj=None):
|
||||
return [(None, {'fields': ['name', 'bio']})]
|
||||
|
||||
ma = BandAdmin(Band, self.site)
|
||||
form = ma.get_form(None)
|
||||
self.assertEqual(form._meta.fields, ['name', 'bio'])
|
||||
|
||||
class InlineBandAdmin(TabularInline):
|
||||
model = Concert
|
||||
fk_name = 'main_band'
|
||||
can_delete = False
|
||||
|
||||
def get_fieldsets(self, request, obj=None):
|
||||
return [(None, {'fields': ['day', 'transport']})]
|
||||
|
||||
ma = InlineBandAdmin(Band, self.site)
|
||||
form = ma.get_formset(None).form
|
||||
self.assertEqual(form._meta.fields, ['day', 'transport'])
|
||||
|
||||
def test_field_arguments(self):
|
||||
# If we specify the fields argument, fieldsets_add and fielsets_change should
|
||||
# just stick the fields into a formsets structure and return it.
|
||||
|
||||
Reference in New Issue
Block a user