Django - pagination for inline models

I realize this is probably a beginner level error, but I'm out of ideas. I need to add pagination to Inline model for admin page. I'm using Django 1.8.4 ( yup, I know it's really old ) and python 3.6.15.

Inside admin.py:

class ArticleInline(GrappelliSortableHiddenMixin, admin.TabularInline):
    model = ArticleSection.articles.through
    raw_id_fields = ("article",)
    related_lookup_fields = {
        'fk':['article'],
        }
    extra = 1

class ArticleSectionsAdmin(reversion.VersionAdmin):
    list_display = ('name','slug','template_file_name')
    inlines = [ArticleInline]

admin.site.register(ArticleSection,ArticleSectionsAdmin)

Inside models.py:

class ArticleSection(Section):
    articles = models.ManyToManyField(Article, verbose_name=_("article"), through="M2MSectionArticle", related_name="sections")
    limit = models.PositiveSmallIntegerField(default=10)

    class Meta:
        db_table = 'sections_article_section'
        verbose_name = _("article section")
        verbose_name_plural = _("articles sections")

    def content(self, request):
        query = Q(m2msectionarticle__visible_to__isnull=True) & Q(m2msectionarticle__visible_from__isnull=True)
        query.add(Q(m2msectionarticle__visible_to__gte=timezone.now(), m2msectionarticle__visible_from__lte=timezone.now()), Q.OR)

        limit = self.limit_override if hasattr(self,
                                               'limit_override') and self.limit_override is not None else self.limit
        return self.articles.filter(query).published().prefetch_related('images').order_by('m2msectionarticle__position')[:limit]

class M2MSectionArticle(models.Model):
    section = models.ForeignKey(ArticleSection, related_name='section_articles')
    article = models.ForeignKey(Article, verbose_name=_('article'))
    position = models.PositiveSmallIntegerField(_("position"), default=0)
    visible_from = models.DateTimeField("Widoczne od", null=True, blank=True)
    visible_to = models.DateTimeField("Widoczne do", null=True, blank=True)

    class Meta:
        db_table = 'sections_section_articles'
        ordering = ["position"]

I found django-admin-inline-paginator and it seems to work for everyone else, but I get "Function has keyword-only parameters or annotations, use getfullargspec() API which can support them" when I use TabularInlinePaginated instead of admin.TabularInline.

from django_admin_inline_paginator.admin import TabularInlinePaginated

class ArticleInline(GrappelliSortableHiddenMixin, TabularInlinePaginated):
    model = ArticleSection.articles.through
    raw_id_fields = ("article",)
    related_lookup_fields = {
        'fk':['article'],
        }
    extra = 1
    per_page = 10

print(inspect.getfullargspec(TabularInlinePaginated)) returns :

FullArgSpec(args=['self', 'parent_model', 'admin_site'], varargs=None, varkw=None, defaults=None, kwonlyargs=[], kwonlydefaults=None, annotations={})

but I still dont know what to do.

Вернуться на верх