我正在研究views.py
中将用于ajax请求的函数,如下所示:
def myfunction(request):
...
p = M1.objects.filter(user=request.user)
n = M2.objects.filter(myrecord=p)
results["res1"] = list(p)
results["res2"] = list(q)
return HttpResponse(json.dumps(results), mimetype='application/javascript')
当我使用ajax调用myfunction
时,我收到如下错误:
例外价值:
<M1: test1 test1 2011-06-17 2011-06-17> is not JSON serializable
任何想法如何解决?
答案 0 :(得分:4)
这是因为json
模块默认只序列化本机数据类型,你必须告诉它如何序列化任意对象。 Django有built-in support for serializing querysets and objects,或者您可以编写自己的序列化程序:
from django.core import serializers
json_serializer = serializers.get_serializer("json")()
json_serializer.serialize(queryset)