0

有没有办法用 json(或除了渲染之外的任何东西)发送一个用分页器制作的 object_list 吗?浏览器正在发出 getjson jquery 请求,views.py 函数应该返回该对象。我想返回一个 json 对象而不是渲染一个新页面的原因是因为我不希望页面重新加载

以下views.py代码:

searchresults = form.search()#this is a call to a haystack form template
results = Paginator(searchresults, 20)
page = results.page(1)
return HttpResponse(json.dumps(page), content_type='application/json')

得到这个错误:

TypeError: <Page 1 of 1> is not JSON serializable
4

2 回答 2

2

只需使用 django 序列化https://docs.djangoproject.com/en/dev/topics/serialization/

from django.core import serializers
...
return HttpResponse(serializers.serialize("json", [q.object for q in results.page(1).object_list]), content_type='application/json')
于 2014-05-04T16:59:50.457 回答
0

您需要创建一个可序列化的字典,如@evilx 评论或手工制作您自己的 Json。

于 2014-05-05T14:02:34.287 回答