Author: jezdez
Date: 2011-08-12 07:14:24 -0700 (Fri, 12 Aug 2011)
New Revision: 16599

Modified:
   django/trunk/django/contrib/admin/options.py
   django/trunk/tests/regressiontests/admin_views/models.py
   django/trunk/tests/regressiontests/admin_views/tests.py
Log:
Fixed #16604 -- Use new save_related hook when saving objects on the 
changelist, too. Thanks, pdeglopper.

Modified: django/trunk/django/contrib/admin/options.py
===================================================================
--- django/trunk/django/contrib/admin/options.py        2011-08-12 14:14:15 UTC 
(rev 16598)
+++ django/trunk/django/contrib/admin/options.py        2011-08-12 14:14:24 UTC 
(rev 16599)
@@ -1146,7 +1146,7 @@
                     if form.has_changed():
                         obj = self.save_form(request, form, change=True)
                         self.save_model(request, obj, form, change=True)
-                        form.save_m2m()
+                        self.save_related(request, form, formsets=[], 
change=True)
                         change_msg = self.construct_change_message(request, 
form, None)
                         self.log_change(request, obj, change_msg)
                         changecount += 1

Modified: django/trunk/tests/regressiontests/admin_views/models.py
===================================================================
--- django/trunk/tests/regressiontests/admin_views/models.py    2011-08-12 
14:14:15 UTC (rev 16598)
+++ django/trunk/tests/regressiontests/admin_views/models.py    2011-08-12 
14:14:24 UTC (rev 16599)
@@ -391,6 +391,8 @@
     model = Parent
     inlines = [ChildInline]
 
+    list_editable = ('name',)
+
     def save_related(self, request, form, formsets, change):
         super(ParentAdmin, self).save_related(request, form, formsets, change)
         first_name, last_name = form.instance.name.split()

Modified: django/trunk/tests/regressiontests/admin_views/tests.py
===================================================================
--- django/trunk/tests/regressiontests/admin_views/tests.py     2011-08-12 
14:14:15 UTC (rev 16598)
+++ django/trunk/tests/regressiontests/admin_views/tests.py     2011-08-12 
14:14:24 UTC (rev 16599)
@@ -3160,3 +3160,22 @@
 
         self.assertEqual('Josh Stone', Parent.objects.latest('id').name)
         self.assertEqual([u'Catherine Stone', u'Paul Stone'], children_names)
+
+    def test_should_be_able_to_edit_related_objects_on_changelist_view(self):
+        parent = Parent.objects.create(name='Josh Rock')
+        paul = Child.objects.create(parent=parent, name='Paul')
+        catherine = Child.objects.create(parent=parent, name='Catherine')
+        post = {
+            'form-TOTAL_FORMS': '1',
+            'form-INITIAL_FORMS': '1',
+            'form-MAX_NUM_FORMS': '0',
+            'form-0-id': parent.id,
+            'form-0-name': 'Josh Stone',
+            '_save': 'Save'
+        }
+
+        response = self.client.post('/test_admin/admin/admin_views/parent/', 
post)
+        children_names = 
list(Child.objects.order_by('name').values_list('name', flat=True))
+
+        self.assertEqual('Josh Stone', Parent.objects.latest('id').name)
+        self.assertEqual([u'Catherine Stone', u'Paul Stone'], children_names)

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to