【问题标题】:JsonResponse doesn't return data in templateJsonResponse 不在模板中返回数据
【发布时间】:2016-12-08 10:33:42
【问题描述】:

我有 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 显示信息。

【问题讨论】:

  • carrera 似乎是一个过滤的查询集。你怎么能从这里得到namesummary
  • @AKS 是的,它是一个查询集,我使用 for 进行迭代,这是另一回事,我想在响应中使用 json 发送该模型中的所有对象,我也可以这样做吗?

标签: jquery python json django


【解决方案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})

【讨论】:

  • 太好了,我会试试这个,但是如果我想发送我在过滤的那个模型中得到的所有对象,这也可以吗?谢谢
  • 您是否在控制台中查看过任何错误,xhr 请求是什么样的?
  • 错误 500,我没有看 xhr,但我现在会看。
  • 我在哪里看错了?
  • 在浏览器中打开 /filtro/?id=5 可以看到错误
【解决方案2】:

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

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

【讨论】:

  • 为什么要连接 id ??
  • 我可以在视图中接收字符串,text() 工作正常,它发送,但问题是当我想发送回模板中的函数时,我什么也看不到,甚至在控制台中,我将尝试 @madalinivascu 所说的 preventdefault .. 如果它有效,我会告诉你。谢谢
猜你喜欢
  • 1970-01-01
  • 2017-12-24
  • 2021-03-03
  • 1970-01-01
  • 2019-01-07
  • 2021-11-26
  • 1970-01-01
  • 2018-09-18
  • 1970-01-01
相关资源
最近更新 更多