ich das queryset
im JSON-Format zurückkehren wollen, und ich verwende die JsonResponse
wie die folgenden:django.http.JsonResponse json Daten in falsche Format zurück
def all_alert_history(request):
''' get all all alert history data '''
all_data_json = serializers.serialize('json', LatestAlert.objects.all())
return JsonResponse(all_data_json,safe=False)
aber der Browser zeigt wie folgt aus:
"[{\"fields\": {\"alert_name\": \"memory usage\", \"alert_value\": 83.7, \"alert_time\": \"2016-11-08T06:21:20.717Z\", \"alert_level\": \"warning\", \"alert_rule\": \"warning: > 80%\"}, \"model\": \"alert_handler.latestalert\", \"pk\": \"xyz.test-java.ip-10-0-10-138.memory.percent\"}]"
ich ersetze die JsonResponse
mit HttpResponse
:
def all_alert_history(request):
''' get all all alert history data '''
all_data_json = serializers.serialize('json', LatestAlert.objects.all())
return HttpResponse(all_data_json, content_type='application/json')
und der Browser zeigt wie folgt aus:
[{"fields": {"alert_name": "memory usage", "alert_value": 83.7, "alert_time": "2016-11-08T06:21:20.717Z", "alert_level": "warning", "alert_rule": "warning: > 80%"}, "model": "alert_handler.latestalert", "pk": "xyz.test-java.ip-10-0-10-138.memory.percent"}]
so, warum die \
erscheint, wenn ich die JsonResponse
verwenden, aber verschwinden, wenn die HttpResponse
benutzen?
django
Version: 1.8
aber wenn ich den 'queryset' direkt in' JsonResponse' wird es eine Fehlermeldung erhalten: 'Typeerror bei/all_history [, ] ist nicht JSON serializable'. das 'LatestAlert.objects.all()' ist ein 'queryset', ich weiß nicht, wie man es in ein dict umwandelt. Ich bin ein Newcomer in Django –
Ja, deshalb bleiben Sie bei 'all_data_json = serializers.serialize ('json', LatestAlert.objects.all()) Rückgabe HttpResponse (all_data_json, content_type = 'Anwendung/Json')' –
ok , werde ich versuchen, 'Django-Rest-Framework', thx :) –