summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJannis Leidel <jannis@leidel.info>2011-07-03 17:56:33 +0000
committerJannis Leidel <jannis@leidel.info>2011-07-03 17:56:33 +0000
commitf9fe112f2d65ea187ad47b280197664b551f339e (patch)
tree4ef7f543bcd43cdfac118eaa84c5adfa616ca23e /tests
parent43cb78fafde45fae9e057d29878c2ebf40aef873 (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.py32
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):