Adding support for pagination.

This commit is contained in:
Gregor Müllegger 2013-05-19 13:11:38 +02:00
parent 8ea3b97786
commit bc899a9389
2 changed files with 22 additions and 1 deletions

View file

@ -167,7 +167,11 @@ class ModelAdmin2(BaseAdmin2):
return reverse('admin2:{}'.format(self.get_prefixed_view_name('index')))
def get_api_list_kwargs(self):
return self.get_default_view_kwargs()
kwargs = self.get_default_view_kwargs()
kwargs.update({
'paginate_by': self.list_per_page,
})
return kwargs
def get_api_detail_kwargs(self):
return self.get_default_view_kwargs()

View file

@ -1,6 +1,7 @@
from django.test import TestCase
from django.test.client import RequestFactory
from django.core.urlresolvers import reverse
from django.utils import simplejson as json
from djadmin2 import apiviews
@ -47,6 +48,22 @@ class ListCreateAPIViewTest(ViewTest):
self.assertIn('"__str__": "Foo"', response.content)
def test_pagination(self):
request = self.factory.get(reverse('admin2:blog_post_api-list'))
modeladmin = self.get_model_admin(Post)
view = apiviews.ListCreateAPIView.as_view(
**modeladmin.get_api_list_kwargs())
response = view(request)
response.render()
data = json.loads(response.content)
self.assertEqual(data['count'], 0)
# next and previous fields exist, but are null because we have no
# content
self.assertTrue('next' in data)
self.assertEqual(data['next'], None)
self.assertTrue('previous' in data)
self.assertEqual(data['previous'], None)
class RetrieveUpdateDestroyAPIViewTest(ViewTest):