如何为基于类的视图创建Paginator?

时间:2014-03-12 14:21:29

标签: python django pagination django-class-based-views django-pagination

我对我的网络应用程序有要求,那就是用姓氏创建员工ListViews。

要列出的类如下:

class Person(models.Model):
    first_name = models.CharField(blank=True)
    last_name = models.CharField(blank=True)
    # etc.

我有一个带有Mixin的ListView:

class PersonMixin(object):
    def get_queryset(self):
        return Person.objects.order_by('last_name', 'first_name')


class PersonListView(PersonMixin, ListView):
    paginate_by = settings.ARCHIVE_PAGE_SIZE
    template_name = 'profile_list.html'
    paginator_class = FamilyNamePaginator

最后,我已经覆盖了Paginator类。

class FamilyNamePaginator(Paginator):
    def page(self, number):
        page = super(FamilyNamePaginator, self).page(number)
        return page

但显然,目前的行为太基本了。我需要用“A ... M P Z”代替“第1页6”,这是姓氏首字母。我没有找到任何文档指出如何自定义Paginator类,任何人都可以指出我应该从哪里开始挖掘?

提前致谢: - )

1 个答案:

答案 0 :(得分:1)

正如@ daniel-roseman在评论中所说的那样,它并不是分页。相反,请尝试使用随附的网址创建一个AlphabetPersonView,然后创建一个模板标记,该标记将插入此导航元素需要的位置。