weixin_33690367 2014-09-25 14:29 采纳率: 0%
浏览 19

AJAX-Django-更好的方法?

I am pretty sure, i am messing up this.

I do ajax request to get some informations of an object.

$.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];
      ..
});

and in django views:

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')

this is what I normally do. but today while I was eating my lunch, I thought, there must be some more professional approach for this.. because i feel like this is too dumb code. and if suddenly content of my obj has something with ° in it, the parsing goes wrong.

.. any guidance will be appreciated.

  • 写回答

1条回答 默认 最新

  • lrony* 2014-09-25 14:37
    关注

    you can return 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")
    

    in templates:

    if(data.issuccess == 'yes'){
    
      var objtitle = data.title;
      var objcontent = data.content;
    }...
    
    评论

报告相同问题?

悬赏问题

  • ¥15 对于这个问题的解释说明
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。