Как разбить и отсортировать несколько наборов запросов на одной странице? - PullRequest
0 голосов
/ 23 апреля 2020

Я использую два набора запросов на одной странице и хочу иметь разные нумерации страниц для каждого из них

Это мое представление на основе классов:

class MainListView(ListView):
    queryset = Post.objects.all()
    template_name = 'main.html'
    context_object_name = 'posts'

    def get_context_data(self, **kwargs):
        context = super(MainListView, self).get_context_data(**kwargs)
        context['news'] = EventsPost.objects.all()
        context['posts'] = self.queryset
        return context

Я хочу, чтобы модель Post быть разбитым на страницы 3, а события - на 6. Спасибо за ваши ответы

1 Ответ

1 голос
/ 23 апреля 2020

Поскольку вам не нужно разбивать на страницы, я бы использовал TemplateView и добавил бы два набора запросов к контексту в методе get_context_data.

class MainListView(TemplateView):

    def get_context_data(self, **kwargs):
        context = super(MainListView, self).get_context_data(**kwargs)
        context['news'] = EventsPost.objects.order_by('-pk')[:6]
        context['posts'] = Post.objects.order_by('-pk')[:3]
        return context

Если вы хотите отсортировать по другое поле, вы можете изменить его на что-то другое, например order_by('-date')

...