Loading django/contrib/admin/options.py +2 −0 Original line number Diff line number Diff line Loading @@ -1858,6 +1858,8 @@ class InlineModelAdmin(BaseModelAdmin): if self.cleaned_data.get(DELETION_FIELD_NAME, False): using = router.db_for_write(self._meta.model) collector = NestedObjects(using=using) if self.instance.pk is None: return collector.collect([self.instance]) if collector.protected: objs = [] Loading docs/releases/1.7.2.txt +3 −0 Original line number Diff line number Diff line Loading @@ -121,3 +121,6 @@ Bugfixes model (:ticket:`23956`). * Fixed a crash when a ``MultiValueField`` has invalid data (:ticket:`23674`). * Fixed a crash in the admin when using "Save as new" and also deleting a related inline (:ticket:`23857`). tests/admin_views/tests.py +17 −0 Original line number Diff line number Diff line Loading @@ -250,6 +250,23 @@ class AdminViewBasicTest(AdminViewBasicTestCase): response = self.client.post('/test_admin/%s/admin_views/section/1/' % self.urlbit, post_data) self.assertEqual(response.status_code, 302) # redirect somewhere def test_edit_save_as_delete_inline(self): """ Should be able to "Save as new" while also deleting an inline. """ post_data = self.inline_post_data.copy() post_data.update({ '_saveasnew': 'Save+as+new', "article_set-1-section": "1", "article_set-2-section": "1", "article_set-2-DELETE": "1", "article_set-3-section": "1", }) response = self.client.post('/test_admin/%s/admin_views/section/1/' % self.urlbit, post_data) self.assertEqual(response.status_code, 302) # started with 3 articles, one was deleted. self.assertEqual(Section.objects.latest('id').article_set.count(), 2) def test_change_list_sorting_callable(self): """ Ensure we can sort on a list_display field that is a callable Loading Loading
django/contrib/admin/options.py +2 −0 Original line number Diff line number Diff line Loading @@ -1858,6 +1858,8 @@ class InlineModelAdmin(BaseModelAdmin): if self.cleaned_data.get(DELETION_FIELD_NAME, False): using = router.db_for_write(self._meta.model) collector = NestedObjects(using=using) if self.instance.pk is None: return collector.collect([self.instance]) if collector.protected: objs = [] Loading
docs/releases/1.7.2.txt +3 −0 Original line number Diff line number Diff line Loading @@ -121,3 +121,6 @@ Bugfixes model (:ticket:`23956`). * Fixed a crash when a ``MultiValueField`` has invalid data (:ticket:`23674`). * Fixed a crash in the admin when using "Save as new" and also deleting a related inline (:ticket:`23857`).
tests/admin_views/tests.py +17 −0 Original line number Diff line number Diff line Loading @@ -250,6 +250,23 @@ class AdminViewBasicTest(AdminViewBasicTestCase): response = self.client.post('/test_admin/%s/admin_views/section/1/' % self.urlbit, post_data) self.assertEqual(response.status_code, 302) # redirect somewhere def test_edit_save_as_delete_inline(self): """ Should be able to "Save as new" while also deleting an inline. """ post_data = self.inline_post_data.copy() post_data.update({ '_saveasnew': 'Save+as+new', "article_set-1-section": "1", "article_set-2-section": "1", "article_set-2-DELETE": "1", "article_set-3-section": "1", }) response = self.client.post('/test_admin/%s/admin_views/section/1/' % self.urlbit, post_data) self.assertEqual(response.status_code, 302) # started with 3 articles, one was deleted. self.assertEqual(Section.objects.latest('id').article_set.count(), 2) def test_change_list_sorting_callable(self): """ Ensure we can sort on a list_display field that is a callable Loading