【发布时间】:2020-03-10 07:50:49
【问题描述】:
我正在尝试为带有分页的列表创建 Django API,但出现此错误
TypeError: Object of type 'Page' is not JSON serializable
以下是我的 API 代码:
@api_view(['POST'])
def employee_get_list_by_page(request):
# ----- YAML below for Swagger -----
"""
description: employee_get_list_by_page
parameters:
- name: token
type: string
required: true
location: form
- name: page
type: string
required: true
location: form
- name: page_limit
type: string
required: true
location: form
"""
token = request.POST['token']
try:
auth_employee = AuthEmployeeSessionToken.objects.get(token=token)
except AuthEmployeeSessionToken.DoesNotExist:
return Response("Invalid Token", status=status.HTTP_406_NOT_ACCEPTABLE)
employee_list = Employee.objects.filter(company = auth_employee.employee.company.id)
page = request.GET.get('page', request.POST['page'])
paginator = Paginator(employee_list, request.POST['page_limit'])
try:
employees = paginator.page(page)
except PageNotAnInteger:
employees = paginator.page(request.POST['page'])
except EmptyPage:
employees = paginator.page(paginator.num_pages)
return Response(employees,status=status.HTTP_200_OK) <-- passing employees probably cause this error that employees as Page is not JSON serializable.
这是我的模特https://gist.github.com/axilaris/89b2ac6a7762f428ad715f4916f43967。 as_dict 通知我有这个 .as_dict() 来创建我的 json 以进行响应。我将它用于单个请求,但用于列表我不确定它是如何完成的。
- 如何通过 API 查询此列表并支持分页?
- 我希望 JSON 仅列出我想要的字段的附带问题。
【问题讨论】:
标签: python json django pagination serialization