django / json - 异常值,<model:field1 =“”field2 =“”... =“”>不是JSON可序列化的</model:>

时间:2011-06-18 16:03:05

标签: django json django-models django-views

我正在研究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
    

任何想法如何解决?

1 个答案:

答案 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)