QuerySet类型的对象不是JSON可序列化的Django

时间:2019-11-07 12:40:47

标签: python json django ajax

当我尝试在JsonResponse中发送值时,错误即将到来(类型QuerySet的对象不是JSON可序列化的)

def ajaxAgent(request):
    data = CommCenter.objects.values()
    responseData = { 'status': 'success', 'msg' : data}
    return JsonResponse(responseData)

3 个答案:

答案 0 :(得分:1)

请找到here答案:

from django.http import JsonResponse

def some_view(request):
    data = list(SomeModel.objects.values())
    return JsonResponse(data, safe=False)  # or JsonResponse({'data': data})

答案 1 :(得分:0)

您将必须编写一个模型序列化程序,以将对象的值序列化为JSON,当您使用Django ORM提取对象时,这些JSON作为列表返回给您。请查看此链接以获取更多详细信息ModelSerializer

答案 2 :(得分:0)

对我有用的是使用values_list()并使用list转换为列表

def ajaxAgent(request):
    data = CommCenter.objects.filter().values_list()
    responseData = { 'status': 'success', 'msg' : list(data)}
    return JsonResponse(responseData)