1

私の Web アプリケーションには要件があります。それは、従業員の ListView を作成し、姓によるページ付けを行うことです。

リストするクラスは次のようになります。

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

しかし、明らかに、現時点での動作は基本的すぎます。たとえば、「page 1 of 6」を「A ... MP Z」に置き換える必要があります。これらは姓のイニシャルです。Paginator クラスをカスタマイズする方法を指摘しているドキュメントは見つかりませんでした。ここでどこから掘り始めるべきか誰か指摘できますか?

前もって感謝します :-)

4

1 に答える 1

1

@daniel-roseman がコメントで述べたように、これはページネーションではありません。代わりに、AlphabetPersonView付属の URL を使用して、たとえば を作成してから、このナビゲーション要素が必要な場所に挿入されるテンプレート タグを作成してみてください。

于 2014-03-13T12:29:15.420 に答える