Пагинация не действует на веб-странице

Я применяю пагинацию на моей странице sports.html, В views.py я использую listview и использую paginate_by = 2, но проблема в том, что пагинация не действует на веб-странице. Номера пагинации видны на странице и при нажатии на эти номера страниц не выдается никакой ошибки, но все посты видны на всех страницах, посты не разделяются по значению paginate_by. Вставьте ссылку с сайта Pastebin для справки: https://pastebin.com/utnd6v5N. может ли кто-нибудь указать, что я делаю неправильно здесь.

Это происходит потому, что вы создаете свой набор запросов на get_context_data. Вы не соблюдаете структуру listview. Попробуйте сделать что-то вроде этого в вашем представлении:

class SportsList(ListView):
    queryset = Sport.objects.all()
    context_object_name = “sports”
    template_name = 'frontend/sports.html'
    paginate_by = 2
    
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['main'] = Main.objects.all()
        return context

Вам необходимо использовать следующее в файле views.py.

 context_object_name = 'sports'

По умолчанию, во время выполнения представления Django, self.object_list будет содержать список объектов (обычно, но не обязательно набор запросов), с которыми работает представление. Вы можете посмотреть ссылку в Django doc здесь. генеральное представление списка

Конечно, вы добавляете 'sports' в контексте def get_context_data, но представление общего списка Django должно оперировать значением, упомянутым в context_object_name или object_list.

Следовательно, в вашем файле views.py используйте:

class SportsList(ListView):
    model = Sports
    template_name = 'frontend/sports.html'
    paginate_by = 2
    context_object_name = 'sports'
    ordering = ["id"]
Вернуться на верх