AJAX - Django - 更好的方法?

时间:2014-09-25 14:29:24

标签: python ajax django

我很确定,我搞砸了这个。

我执行ajax请求以获取对象的一些信息。

$.ajax({
    url: "/get_obj_ajax/",
    type: "get",
    data: {id:id}
}).done(function(data){
    if(data!='bad'){
      data = data.split('°');
      var objtitle = data[0];
      var objcontent = data[1];
      ..
});

和django观点:

def get_obj_ajax(request):
   if request.method == "GET":
     obj= MyModel.objects.get(id=int(request.GET.get('id')))  
     data = obj.title + '°' + obj.content 
     return HttpResponse(data)
   return HttpResponse('bad')
这是我通常做的事情。但是今天我正在吃午饭时,我想,必须有一些更专业的方法来解决这个问题...因为我觉得这个代码太愚蠢了。如果我的obj突然content中有°的内容,那么解析就会出错。

..任何指导将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以返回json data

def get_obj_ajax(request):
   import json
   data={"issuccess": 'no'}
   if request.method == "GET":
     obj= MyModel.objects.get(id=int(request.GET.get('id')))  
     data = {"issuccess": 'yes',"title":obj.title ,"content": obj.content}
   return HttpResponse(json.dumps(data), content_type="application/json")
模板中的

if(data.issuccess == 'yes'){

  var objtitle = data.title;
  var objcontent = data.content;
}...