diff --git a/example_project/polls/admin.py b/example_project/polls/admin.py index f2f6b37..c9a65ef 100644 --- a/example_project/polls/admin.py +++ b/example_project/polls/admin.py @@ -55,6 +55,11 @@ class PollAdmin(DjangoObjectActions, admin.ModelAdmin): def delete_all_choices(self, request, obj): from django.shortcuts import render_to_response from django.template import RequestContext + + if request.method == 'POST': + obj.choice_set.all().delete() + return + return render_to_response('clear_choices.html', dict(object=obj), context_instance=RequestContext(request)) delete_all_choices.label = "Delete All Choices" diff --git a/example_project/test_app/tests.py b/example_project/test_app/tests.py index a316734..c6ee83c 100644 --- a/example_project/test_app/tests.py +++ b/example_project/test_app/tests.py @@ -39,6 +39,8 @@ def test_tool_can_return_httpresponse(self): self.assertTrue(response['location'].endswith('/admin/polls/poll/1/')) def test_intermediate_page_with_post_works(self): + self.assertTrue(Choice.objects.filter(poll=1).count()) url = '/admin/polls/poll/1/tools/delete_all_choices/' response = self.client.post(url) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, 302) + self.assertEqual(Choice.objects.filter(poll=1).count(), 0)