Python 如何在不使用REST框架的情况下在Django和React应用程序中实现分页?

Python 如何在不使用REST框架的情况下在Django和React应用程序中实现分页?,python,django,reactjs,django-pagination,Python,Django,Reactjs,Django Pagination,我在一个网站上工作,其后端是Django,前端是使用React开发的。我想在网站中添加分页功能,但不知道它将如何在前端部分实现 我想将总页数发送到react应用程序 到目前为止,我已经在视图函数中编写了以下代码 def index(request): influencers = Influencer.objects.all() paginator = Paginator(influencers,16) page = request.GET.get('page')

我在一个网站上工作,其后端是Django,前端是使用React开发的。我想在网站中添加分页功能,但不知道它将如何在前端部分实现

我想将总页数发送到react应用程序

到目前为止,我已经在视图函数中编写了以下代码

def index(request):
    influencers = Influencer.objects.all()

    paginator = Paginator(influencers,16)
    page = request.GET.get('page')
    paged_listings = paginator.get_page(page)
    user_list = UserList.objects.all().filter(user_id = request.user.id)

    queryset = list(chain(paged_listings,user_list),paginator.count)
    ser_query = serializers.serialize('json', queryset)
    return HttpResponse(ser_query)
另外,我没有使用REST框架来开发后端站点


我想知道我必须向React前端站点发送哪些信息才能使其正常工作。我应该如何继续?

我建议您使用django rest框架,因为分页可能更容易

但是,如果您希望避免传递您自己的结构(显然,您可能需要传递其他信息,如下一页/上一页等)

这里的挑战是确保一切都是JSON可序列化的-这意味着对于
Queryset
,您必须使用.values()并用list()包装结果。对于
Paginator
,需要使用list()换行


给出的错误是列表没有属性
values()
。可能是因为queryset本身就是一个列表。在影响者模型中有一个多对多的字段,我无法显示。
from django.http.response import JsonResponse

def index(request):
    influencers = Influencer.objects.all().values()

    paginator = Paginator(influencers,16)
    page = request.GET.get('page')
    paged_listings = paginator.get_page(page)
    user_list = UserList.objects.all().filter(user_id = request.user.id).values()

    queryset = list(chain(paged_listings,user_list),paginator.count)
    content = {'total_page_count': paginator.num_pages, 'data': queryset}
    return JsonResponse(content)