gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 01:56:30 25 4
gpt4 key购买 nike

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

我想将总页数发送到 React 应用。

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

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-framework,因为分页可能更容易。

但是,如果您想避免这种情况,您可以传递自己的结构(显然,您可能需要传递其他信息,例如下一页/上一页等)。

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

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)

关于python - 如何在不使用 REST 框架的情况下在 Django 和 React 应用程序中实现分页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56701448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com