Разбивка на страницы в подробном представлении с контекстом? [django]

#django #django-views

#django #django-просмотры

Вопрос:

Я сделал комментарий и комментарии в статье (DetailView) Как я могу разбить на страницы эти комментарии в DetailView. Я перепробовал много вариантов, но без успеха…

число просмотров:

 class ArticleDetailView(FormMixin, HitCountDetailView):
    template_name = 'news/article_detail.html'
    model = Article
    count_hit = True
    form_class = CommentForm

    def get_success_url(self):
        pk = self.kwargs["pk"]
        slug = self.kwargs['slug']
        return reverse_lazy('news:article_detail', kwargs={'pk': pk, 'slug': slug})

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['comments'] = ArticleComment.objects.filter(article_id=self.object.id).all()
        context['comments_number'] = ArticleComment.objects.filter(article_id=self.object.id).count()
        context['form'] = CommentForm()
        return context

    def form_valid(self, form):
        form.instance.article = self.object
        form.instance.author = self.request.user
        form.save()
        messages.success(request=self.request, message="KOMENTARZ ZOSTAŁ DODANY POPRAWNIE")
        return super().form_valid(form)

    def post(self, request, *args, **kwargs):
        self.object = self.get_object()
        form = self.get_form()
        if form.is_valid():
            return self.form_valid(form)
        else:
            return self.form_invalid(form)
  

Ответ №1:

Вы можете попробовать так.

 from django.core.paginator import Paginator

qs = ArticleComment.objects.filter(article_id=self.object.id).all()
page = self.request.GET.get('page')
context['comments'] = Paginator(qs, 10).get_page(page)
return context
  

Комментарии:

1. но как теперь перенести его в шаблон …?

2. @AM0k пожалуйста, проверьте документы для разбивки на страницы.