2016-06-02 3 views
0

장고 백엔드가 있고 내보기에서 json 객체 목록을 반환하고 싶습니다.json 객체의 Django 목록

@api_view(('GET',)) 
def get_analytics(request): 
    # Number of users who dogged in once to our system today 
    login_count= User.objects.filter(last_login__startswith= 
     timezone.now().date()).count() # returns int 
    finished_count = Exercise_state.objects.filter(exercise_id=7, progress=2).count() 
    # returns int 

    count_list=[] 
    count_list.append(login_count) 
    count_list.append(finished_count) 

    data = {} 
    data['login_count'] = login_count 
    data['finish_count'] = finished_count 
    json_data = json.dumps(data) 

    return Response(json_data) 

이 그러나 제가 원하는 것은 [{"login_count": 2, "finished_count": 3}]

같은 것을 어떻게 이것을 달성 할 수있다 "{\"finish_count\": 1, \"login_count\": 2}" 반환?

답변

1

사용 JsonResponse 대신, json 개체를 올바르게 구문 분석하려면 다음을 수행하십시오.

from django.http import JsonResponse 

다음과 같이 원래 dict 개체를 사용할 수 있습니다.

2

JsonResponse이 필요합니다. 그러나 당신이 그것을 사용할 예정이라면 json.dumps(data), JsonResponse 복용량을 필요로하지 않습니다. django doc에서 인용 :

>>> from django.http import JsonResponse 
>>> response = JsonResponse({'foo': 'bar'}) 
>>> response.content 
b'{"foo": "bar"}' 

당신이 장고가 < 1.7, 어떻게 사용하는 경우 (여전히 이후 버전에서 사용할 수 있지만, JsonResponse이 eaiser을 만드는) :

return HttpResponse(json.dumps(data), content_type="application/json")