如何更正JsonResponse给定的格式

时间:2019-06-10 07:40:22

标签: json django django-views jsonresponse

我正在使用JsonResponse在Django中打印我的views函数的输出 并且想要更正输出并仅包含某些字段。我应该如何进行?

函数是:

    influencers = Influencer.objects.all()

    influencer_data = serializers.serialize("json",influencers)    
    context = {
        'influencer_data':influencer_data,
    }

    return JsonResponse(context)

输出/返回值为:

{"influencer_data": "[{\"model\": \"influencer_listings.influencer\", \"pk\": 7250, \"fields\": {\"full_name\": \"Be Yourself\", \"username\": \"tapasya_agnihotri\", \"photo\": \"\", \"email_id\": \"\", \"external_url\": \"\", \"location_city\": \"Kolkata\" 输出类似于上面给出的输出,但是我希望输出不包含斜杠。为什么JsonResponse会打印斜杠。

2 个答案:

答案 0 :(得分:3)

您要序列化两次。如果您使用内置的序列化程序,则应该只使用HttpResponse并直接返回数据:

influencer_data = serializers.serialize("json",influencers)    

return HttpResponse(influencer_data, content_type="application/json")

答案 1 :(得分:2)

正如我在这里已经提到的How do you serialize a model instance in Django?,使用 python 串行器而不是json

influencers = Influencer.objects.all()

influencer_data = serializers.serialize("python",influencers)    
context = {
    'influencer_data':influencer_data,
}

return JsonResponse(context)