2017-07-31 75 views
0

目前,我有以下查詢集過濾器:

def grab_city_landmark(request): 
    State = State.objects.filter(state=state_name) 
    City = list(State.valued_list('city', flat=True).distinct()) 
    Landmark = list(State.valued_list('landmark', flat=True).distinct()) 

    response = { 
     'state': State, 
     'city': City, 
     'landmark': Landmark, 
    } 
    return HttpResponse(response, content_type="application/javascript") 

jQuery的電話是:

$(document).ready(function() { 
     $.getJSON('grab_city_landmark/', {state_name: state}, function(data) { 

     ... GRAB DATA HERE ... 

     iterate over i 
     data['city'][i] 

我的問題是:

  1. 我如何在JSON形式的反應如何?它是以json形式嗎?我如何檢查?我看不到該對象返回到jquery。 json.dumps(響應)似乎不工作。

  2. 你如何看看在Java控制檯什麼是返回到jQuery的?

回答

1
import json 

response = json.dumps(list(State),City,Landmark) 
return HttpResponse(response, content_type="application/javascript") 

或使用Django

from django.http import JsonResponse 
response = JsonResponse({'state': list(State),'city': City,'landmark': Landmark,}) 
+0

jsonresponse'State'被查詢集 –

+0

使它成爲一個名單,然後,通過把它 – Exprator

+0

更好問OP列表盈,但我完成) –

1

您可以嘗試使用Django serializationDRF serializers,第二種方法可以幫助你創建REST API。例如:

from django.core import serializers 

state = State.objects.filter(state=state_name) 
state_data = serializers.serialize("json", state) 
city_data = serializers.serialize(
      "json", 
      state.distinct('city').order_by(), fields=('city') 
      ) 
相關問題