Author: jezdez Date: 2010-12-12 16:58:47 -0600 (Sun, 12 Dec 2010) New Revision: 14889
Modified: django/trunk/django/contrib/admin/views/main.py django/trunk/tests/regressiontests/admin_changelist/tests.py Log: Fixed #14312 -- Raising an ``IncorrectLookupParameters`` if the page number given to an admin change list exceeds the number of the last page. Thanks, mk. Modified: django/trunk/django/contrib/admin/views/main.py =================================================================== --- django/trunk/django/contrib/admin/views/main.py 2010-12-12 22:58:25 UTC (rev 14888) +++ django/trunk/django/contrib/admin/views/main.py 2010-12-12 22:58:47 UTC (rev 14889) @@ -117,7 +117,7 @@ try: result_list = paginator.page(self.page_num+1).object_list except InvalidPage: - result_list = () + raise IncorrectLookupParameters self.result_count = result_count self.full_result_count = full_result_count Modified: django/trunk/tests/regressiontests/admin_changelist/tests.py =================================================================== --- django/trunk/tests/regressiontests/admin_changelist/tests.py 2010-12-12 22:58:25 UTC (rev 14888) +++ django/trunk/tests/regressiontests/admin_changelist/tests.py 2010-12-12 22:58:47 UTC (rev 14889) @@ -1,4 +1,5 @@ from django.contrib import admin +from django.contrib.admin.options import IncorrectLookupParameters from django.contrib.admin.views.main import ChangeList from django.template import Context, Template from django.test import TransactionTestCase @@ -71,6 +72,28 @@ self.assertFalse('<td>%s</td>' % editable_name_field == -1, 'Failed to find "name" list_editable field in: %s' % table_output) + def test_result_list_editable(self): + """ + Regression test for #14312: list_editable with pagination + """ + + new_parent = Parent.objects.create(name='parent') + for i in range(200): + new_child = Child.objects.create(name='name %s' % i, parent=new_parent) + request = MockRequest() + request.GET['p'] = -1 # Anything outside range + m = ChildAdmin(Child, admin.site) + + # Test with list_editable fields + m.list_display = ['id', 'name', 'parent'] + m.list_display_links = ['id'] + m.list_editable = ['name'] + self.assertRaises(IncorrectLookupParameters, lambda: \ + ChangeList(request, Child, m.list_display, m.list_display_links, + m.list_filter, m.date_hierarchy, m.search_fields, + m.list_select_related, m.list_per_page, m.list_editable, m)) + + class ChildAdmin(admin.ModelAdmin): list_display = ['name', 'parent'] def queryset(self, request): -- You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to django-upda...@googlegroups.com. To unsubscribe from this group, send email to django-updates+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-updates?hl=en.