diff options
| author | Jannis Leidel <jannis@leidel.info> | 2011-07-03 17:56:33 +0000 |
|---|---|---|
| committer | Jannis Leidel <jannis@leidel.info> | 2011-07-03 17:56:33 +0000 |
| commit | f9fe112f2d65ea187ad47b280197664b551f339e (patch) | |
| tree | 4ef7f543bcd43cdfac118eaa84c5adfa616ca23e /tests | |
| parent | 43cb78fafde45fae9e057d29878c2ebf40aef873 (diff) | |
Fixed #15820 -- Fixed the use of the InlineAdmin's get_formset method by actually passing in the obj. Thanks, Julien Phalip.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16497 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/regressiontests/modeladmin/tests.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/regressiontests/modeladmin/tests.py b/tests/regressiontests/modeladmin/tests.py index 27f9f2cb45..1bce158dd8 100644 --- a/tests/regressiontests/modeladmin/tests.py +++ b/tests/regressiontests/modeladmin/tests.py @@ -237,6 +237,38 @@ class ModelAdminTests(TestCase): '<option value="%d">The Doors</option>\n' '</select>' % self.band.id) + def test_regression_for_ticket_15820(self): + """ + Ensure that `obj` is passed from `InlineModelAdmin.get_fieldsets()` to + `InlineModelAdmin.get_formset()`. + """ + class CustomConcertForm(forms.ModelForm): + + class Meta: + model = Concert + fields = ['day'] + + class ConcertInline(TabularInline): + model = Concert + fk_name = 'main_band' + + def get_formset(self, request, obj=None, **kwargs): + if obj: + kwargs['form'] = CustomConcertForm + return super(ConcertInline, self).get_formset(request, obj, **kwargs) + + class BandAdmin(ModelAdmin): + inlines = [ + ConcertInline + ] + + concert = Concert.objects.create(main_band=self.band, opening_band=self.band, day=1) + ma = BandAdmin(Band, self.site) + fieldsets = list(ma.inline_instances[0].get_fieldsets(request)) + self.assertEqual(fieldsets[0][1]['fields'], ['main_band', 'opening_band', 'day', 'transport']) + fieldsets = list(ma.inline_instances[0].get_fieldsets(request, ma.inline_instances[0].model)) + self.assertEqual(fieldsets[0][1]['fields'], ['day']) + # radio_fields behavior ########################################### def test_default_foreign_key_widget(self): |
