Django Json回复
我只需要一些帮助,我正在制作一个Ajax方法来加载网站中的一些内容:
这是我的方法:
def get_subcat(request, id): sub_categories = SubCategory.objects.filter(parent_category=id) return HttpResponse(sub_categories)
这是ajax方法:
function menu_element_hover(id){ $.ajax({ url:'/catalog/get_subcat/'+id }).done(function(data){ alert(data); }).fail(function(error){ alert('error'); });
}
问题是,我需要一个Json响应,但我得到的是一个带有子类别的String,例如:SnorkelsShirts
如果有人能帮助我请:D,不理睬!
sub_categories = SubCategory.objects.filter(parent_category=id)
返回queryset,如果你把它作为HttpResponse返回,那么它会尝试将它们强制转换成人类可读的东西 – 比如字符串。
如果你想返回json,那么首先你需要做类似的事情
from django.utils import simplejson return HttpResponse(simplejson.dumps(sub_categories))
但是,由于queryset不是json serializeable,因此您将遇到下一个问题。
总而言之,你需要做的是把内容序列化为json格式,如果你想在浏览器/服务器之间移动json,因为HttpResponse不是一些神奇的类,可以猜出你想要的东西,然后去做。
从Django 1.7开始,有一个JsonResponse
类 ,它接受参数中的Python对象并返回正确的HttpResponse
。
from django.http import JsonResponse sub_categories = SubCategory.objects.filter(parent_category=id) return JsonResponse(sub_categories, safe=False) # Without safe flag, sub_catgeories should be a dict
- jquery mobile ajax发送GET和POST请求
- 未捕获的TypeError:$ .ajax(…)。success不是函数
- 如何从jquery .load获取php respone
- 如何使用jQuery的ajax方法将json数组发布到PHP?
- Rails 4使用ajax,jquery,:remote => true和respond_to呈现部分
- 如何使用Instagram API发布喜欢或删除Instagram?
- 使用Ajax / jQuery从CouchDB读取连续提要
- 使用没有数据库的jquery / ajax添加和显示collections夹名称列表
- 在jquery数据表中渲染大型服务器端数据集