- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在我的JsonResponse中添加分页。
我目前正在使用django.http.JsonResponse
从 Elasticsearch API生成json。我想添加一个分页功能。我的代码如下:
class ResultQueryView(View):
def get(self, request):
resource_meta = request.GET.getlist("resource_meta")
locations = request.GET.getlist("location")
page = request.GET.get("page")
logger.info("Got search query where resource_meta: {} and locations: {}".format(resource_meta, locations))
results = resource_query(resource_meta, locations)
resource_ids = [r["_id"] for r in results['hits']['hits']]
resources = get_enriched_resources(request.user, Resource.objects.filter(internal_id__in=resource_ids))
serialized = ResourceSerializer(resources, many=True)
return JsonResponse({"resources": serialized.data})
最佳答案
使用Django的Paginator
。
from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
class ViewPaginatorMixin(object):
min_limit = 1
max_limit = 10
def paginate(self, object_list, page=1, limit=10, **kwargs):
try:
page = int(page)
if page < 1:
page = 1
except (TypeError, ValueError):
page = 1
try:
limit = int(limit)
if limit < self.min_limit:
limit = self.min_limit
if limit > self.max_limit:
limit = self.max_limit
except (ValueError, TypeError):
limit = self.max_limit
paginator = Paginator(object_list, limit)
try:
objects = paginator.page(page)
except PageNotAnInteger:
objects = paginator.page(1)
except EmptyPage:
objects = paginator.page(paginator.num_pages)
data = {
'previous_page': objects.has_previous() and objects.previous_page_number() or None,
'next_page': objects.has_next() and objects.next_page_number() or None,
'data': list(objects)
}
return data
ViewPaginatorMixin
支持
View
的分页
class ResultQueryView(ViewPaginatorMixin, View):
def get(self, request):
// code
serialized = ResourceSerializer(resources, many=True)
return JsonResponse({"resources": self.paginate(serialized.data, page, limit)})
关于django - 使用JsonResponse分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49035909/
我正在使用 Django View 返回一个 JSON 对象。但是,当我使用下面的方法时,我得到的是字典的字符串表示,而不是 JSON 对象。 def api_dataset_index(reques
我正在尝试从 Web 服务器上的 MySQL 数据库中获取数据。我的目标是检索已经在 MySQL 数据库中的位置数据数组。我正在从服务器获取此数据数组,但无法将其从 jsonResponse.getJ
我有一个小问题。也许有人有想法。 我按以下方式使用 Serializer。函数 json_encode 被应用了两次的问题。 首先当我调用 $serializer->serialize($post,
我对 JsonResponse 有疑问。这是我的代码: $repo = $this->getDoctrine()->getRepository($repoName); $users = $repo->
Django 1.7 引入了 JsonResponse objects ,我尝试使用它来将值列表返回给我的 ajax 请求。 我想通过 >>> Genre.objects.values('name',
我正在使用 django 的 fileupload 并让示例中的文档正常工作。现在,我想使用 JsonResponse 修改响应像这样: def upload_file(request): i
如何从这里获取ID JsonResponse {#457 ▼ #data: "{"bill":{"id":11,"invoice_no":"9m36r9_1459170388239"}}" #
我想通过调用 json 数据的 ajax 使我的当前更具交互性,除了研究和学习之外,我还没有做任何事情。这里有一些我不是很清楚。如果 JsonResponse 和 DRF 可以提供我需要的 json
我遇到了这种错误: SyntaxError: missing ; before statement 我不知道是什么原因导致了错误,但我这里有这段代码: (function pollschedule()
所以我最近迁移到了 Python 3.6 和 Django 1.11,我的 JsonResponse 代码如下所示: return JsonResponse({'status': '1'}) 它
我在 Django 中使用 json 响应,但我有特殊字符(ñáé 等...) 我的看法 def get_agencies(request): qr = Agency.objec
使用 fastapi 并具有返回创建的 JSONResponse 的函数。我的目标是创建自定义 200 响应并将其放入具有预期 BaseModel 的 Pydantic parse_obj_as。 有
我的问题是: 返回的数据有\u0022 而不是 ""。 $em=$this->getDoctrine()->getManager(); $result = $em->getRepository('Ho
我的问题是我想返回一些从 Doctrine 中获得的数据 JsonResponse目的。我用 QueryBuilder 获取数据, 像这样: $qb = $this->getDoctrine()->g
我想知道如何从 Django 中的 JsonResponse 获取数据。我做了一个像这样工作的 JsonResponse def pfmdetail(rsid): snpid = parseSe
我正在使用 Symfony2 并执行 Ajax 调用来处理表单。我遇到的问题是,通过使用返回给我的 JsonResponse,驱动程序告诉我该值未定义。我想知道我在解决这个问题时做错了什么,并且是否可
我有一个用于处理 Ajax 请求的 Servlet,它以 JSON 格式给出响应。 我在网上收到此警告,如下评论。类型安全:方法 setResponseData(Object) 属于原始类型 Json
我想访问以下 jsonResponse 对象中返回的数据: {"results": [[1, "Probability and Stochastic Processes", 9781118324561
我刚刚设置了我的第一个 Web 服务 (REST Api),它工作正常(使用 Chrome 上的 postman 插件进行了检查)。我的 JSONresponse 中有三个参数: { "a": 1,
更新:当您使用 chrome 浏览器访问生成 JSON 作为输出的页面时。显示的结果不正确。 考虑这个生成 json 的 django 代码。当你 json.dumps 一个 long 时,这两个数字
我是一名优秀的程序员,十分优秀!