Как исправить формат, предоставленный JsonResponse - PullRequest
2 голосов
/ 10 июня 2019

Я печатаю вывод из функции просмотра в Django, используя JsonResponse, и хочу исправить вывод и включить только определенные поля. Как мне продолжить?

Функция:

    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 ]

3 голосов
/ 10 июня 2019

Вы сериализуетесь дважды. Если вы используете встроенные сериализаторы, вы должны просто использовать HttpResponse и вернуть данные напрямую:

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

return HttpResponse(influencer_data, content_type="application/json")
2 голосов
/ 10 июня 2019

Как я уже упоминал здесь, Как вы сериализуете экземпляр модели в Django? , используйте python сериализатор вместо json

influencers = Influencer.objects.all()

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

return JsonResponse(context)
...