受官方 Django 文档的启发,我想使用此功能一次检索 20 个日志页面:
logs_list = (
Log.objects.filter(modified_object_id=device_id)
.order_by("-created_at")
.values(
"username",
"action_type",
"modified_model_name",
"modified_object_name",
"group_name",
"role_name",
"workspace_name",
"created_at",
"modification",
"modified_object_id",
"user_id",
)
)
# Pagination
paginator = Paginator(logs_list, 20)
try:
logs = paginator.get_page(page)
except PageNotAnInteger:
# If page is not an integer, raise exception
ValidationError("page_number_invalid")
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
return Response(data=[], status=status.HTTP_200_OK)
print(logs)
return Response(data=logs, status=status.HTTP_200_OK)
我知道device_id(UUID) 和page(int) 变量是正确的。Querysetlogs_list包含多个有效值,但该logs值显示<Page 1 of 1>为打印时,此方法的输出为{}.
为什么分页不能正常工作?