有没有办法用json(或除渲染之外的任何其他东西)发送一个用paginator制作的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
答案 0 :(得分: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')
答案 1 :(得分:0)
您需要创建一个可序列化为@evilx的字典,或者手工制作自己的Json。