JsonResponse不会在模板中返回数据

时间:2016-12-08 10:33:42

标签: jquery python json django

我有django 1.7,我提出了一个视图,我想接收jquery发送的信息2.1.1

我可以在视图中接收信息并打印它,但是当我使用JsonResponse将JSON发送到模板中的函数,并使用console.log来查看JSON时,没有任何反应。

views.py

def filtro(request):
    if request.is_ajax():
        carrera = Event.objects.filter(category__name = request.GET['id'])
        reponse = JsonResponse({'name' : carrera.name, 'age' : carrera.summary})
        return HttpResponse(response.content)
    else:
        return ('/')    

urls.py

url(r'^filtro/$', 'apps.eventos.views.filtro', name="filtro"),

eventos.html

$('.list li a').on('click', Filtrar);
  function Filtrar(){
    var id = $(this).text()
    $.ajax({
      data : {'id' : id},
      url : '/filtro/',
      type : 'get',  
      success: function(data){
        console.log(data);
      }
    });

  };

当有人点击任何a标记时,我想通过JSON从我的模型中显示信息。

2 个答案:

答案 0 :(得分:1)

阻止默认点击事件

$('.list li a').on('click', Filtrar);
  function Filtrar(e){
    e.preventDefault();
    var id = $(this).text()
    $.ajax({
      data : {'id' : id},
      url : '/filtro/',
      type : 'get',  
      success: function(data){
        console.log(data);
      }
    });

  };

返回json响应

return JsonResponse({'name' : carrera.name, 'age' : carrera.summary})

答案 1 :(得分:0)

我不知道python,但是你认为jquery ajax调用  data : {'id' : '\"'+ id + '\"'},代替data : {'id' : id},可以解决您的问题。

因为您要发送一个字符串,所以您需要在引号内添加它。