如何将查询集结果的字典传递给$ .json?
问题描述:
目前,我有以下查询集过滤器:
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]
我的问题是:
我如何在JSON形式的反应如何?它是以json形式吗?我如何检查?我看不到该对象返回到jquery。 json.dumps(响应)似乎不工作。
你如何看看在Java控制台什么是返回到jQuery的?
答
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,})
答
您可以尝试使用Django serialization或DRF 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')
)
的
jsonresponse
'State'被查询集 –使它成为一个名单,然后,通过把它 – Exprator
更好问OP列表盈,但我完成) –