python-3.x - 如何在我的 Django Rest Framework 分页中包含一个 Count 来计算总行数?
问题描述
我已经使用 Django Rest Framework 在 Python 中编写了一个代码,以从数据库(MySql)中获取数据并使用分页(PageNumberPagination)在浏览器中查看它。它工作正常,但问题是“计数”没有出现在视图中。我想显示计数的总行数。我得到这样的回应:
GET /fetchdata/?page=1&per_page=10
HTTP 200 OK
Allow: GET, OPTIONS, POST
Content-Type: application/json
Vary: Accept
[
{
"id": 53,
"first_name": "Rounak",
},
{
"id": 54,
"first_name": "Rounak",
},
]
但我想要这样的回应。
HTTP 200 OK
{
"count": 1023
"next": "https://api.example.org/persons/?page=2&per_page=10",
"previous": null,
"results": [
…
]
}
下面是我的代码,请给我一些建议。
视图.py
from rest_framework.pagination import PageNumberPagination
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from .pagination import StandardResultsSetPagination
@api_view(['GET','POST'])
def index(request):
if request.method=='GET':
all_dataobj=fetchdata.objects.all()
paginator = StandardResultsSetPagination()
result_page = paginator.paginate_queryset(all_dataobj, request)
pserializer=fetchdataSerializers(result_page,many=True)
return Response(pserializer.data,status=status.HTTP_201_CREATED)
elif request.method=='POST':
serializer=fetchdataSerializers(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data,status=status.HTTP_201_CREATED)
return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)
分页.py
from rest_framework import pagination
class StandardResultsSetPagination(pagination.PageNumberPagination):
page_size = 10
page_query_param = 'page'
page_size_query_param = 'per_page'
max_page_size = 1000
设置.py
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS':
'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 10
}
解决方案
推荐阅读
- java - spring 集成 tcp 客户端发送简单消息
- javascript - 根据按钮元素层次位置收集输入值
- excel - VBA循环遍历具有多个范围和条件的行
- swift - uiAlertController 有时不解雇
- c# - 设置 Xamarin 命令时,我可以在 viewModel 类构造函数中执行此操作吗?
- android - 在android中应用过滤器后自定义适配器无法正常工作
- ios - 类型“UIApplication”没有成员“didBecomeActiveNotification”
- c# - MVC Html Helper MultiSelect CheckBox
- c# - WPF 仅禁用某组按钮
- .net - 我如何只能运行一个 Selenium 实例?