artichels_pagination.get() 缺少 1 个必需的位置参数:'request'

问题描述 投票:0回答:1
class artichels_pagination(ListView):

    queryset =models.article.objects.all().order_by('-upload')
    template_name = 'blog.html'
    def get(self,request):
        page_artichel = Paginator(self.queryset, 2)

        page_number = request.GET.get('page')
        page_obj = page_artichel.get_page(page_number)

        render(request,self.template_name,context={'artichel':page_obj})

这是错误:

artichels_pagination.get() missing 1 required positional argument: 'request'
python django django-views django-templates django-urls
1个回答
0
投票

尝试使用此解决方案


from django.core.paginator import Paginator


class artichels_pagination(ListView):

    queryset =models.article.objects.all().order_by('-upload')
    template_name = 'blog.html'
    context_object_name = 'articles'
    paginate_by = 5

    def get_context_data(self, **kwargs):
        context = super(artichels_pagination, self).get_context_data(**kwargs)
        articles = self.get_queryset()
        page = self.request.GET.get('page')
        paginator = Paginator(articles, self.paginate_by)
        try:
            articles = paginator.page(page)
        except PageNotAnInteger:
            articles = paginator.page(1)
        except EmptyPage:
            articles = paginator.page(paginator.num_pages)
        context['articles'] = articles
© www.soinside.com 2019 - 2024. All rights reserved.