1

我对我的 Web 应用程序有一个要求,那就是创建按姓氏分页的员工 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 ... MP Z”替换“第 1 页,共 6 页”,即姓氏首字母。我还没有找到任何文档指出如何自定义 Paginator 类,谁能指出我应该从哪里开始挖掘?

提前致谢 :-)

4

1 回答 1

1

正如@daniel-roseman 在他的评论中所说,这不是分页。相反,请尝试AlphabetPersonView使用随附的 URL 创建一个模板标签,然后将模板标签插入到该导航元素需要去的任何地方。

于 2014-03-13T12:29:15.420 回答