Задать вопрос
@Antoine

Как сделать пагинацию в Django Admin Inline?

В админке в StackedInline отображается очень большое количество строк, потому необходимо сделать пагинацию. Пытаюсь так:

class CatalogItemInlineAdmin(admin.StackedInline):
    model = CatalogItem
    template = 'admin/edit_inline/list.html'

    def get_formset(self, request, obj=None, **kwargs):
        FormSet = super(CatalogItemInlineAdmin, self).get_formset(request, obj, **kwargs)
        class NewFormSet(FormSet):
            def _construct_forms(self, *args, **kwargs):
                qs = self.get_queryset()
                paginator = Paginator(qs, 20)
                try:
                    page_num = int(request.GET.get('page', '1'))
                except ValueError:
                    page_num = 1
                try:
                    page = paginator.page(page_num)
                except (EmptyPage, InvalidPage):
                    page = paginator.page(paginator.num_pages)
                self.paginator = paginator
                self.page = page
                self._queryset = page.object_list
                self.max_num = len(page.object_list)

                return super(NewFormSet, self)._construct_forms(*args, **kwargs)

        return NewFormSet


Делаю по аналогии с примером

https://gist.github.com/coderanger/559911

Но не происходит ровным счетом ничего. Выводятся все-все объекты. Что я не так делаю?
  • Вопрос задан
  • 544 просмотра
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы