Javascript 带有Django视图的Ajax请求-错误地捕获变量

Javascript 带有Django视图的Ajax请求-错误地捕获变量,javascript,ajax,django,Javascript,Ajax,Django,我已经使用其他代码示例成功地将数据从URL传递到视图,所以我不确定为什么这一个有什么不同,但下面是我对视图的ajax调用的内容。我正在尝试传递id和可选的深度参数: links/url.py 请求 反应 因此,请求被正确地传播到了正确的视图中,但变量没有。这是为什么?您的URL模式是ajax/(?p\d+),也就是说,视图ajax\u graph\u请求需要一个id作为参数。通过将其作为数据参数{id:record,depth:2}发送。它作为kwarg而不是参数id传递 将.getJson方法

我已经使用其他代码示例成功地将数据从URL传递到视图,所以我不确定为什么这一个有什么不同,但下面是我对视图的ajax调用的内容。我正在尝试传递id和可选的深度参数:

links/url.py 请求 反应
因此,请求被正确地传播到了正确的视图中,但变量没有。这是为什么?

您的URL模式是
ajax/(?p\d+)
,也就是说,视图
ajax\u graph\u请求
需要一个
id
作为参数。通过将其作为数据参数
{id:record,depth:2}
发送。它作为
kwarg
而不是参数
id
传递

.getJson
方法更改为

$.getJSON("/ajax/"+record, { depth:2 }).done(function( data )

它会很好用的

好极了!完全按照规定。我想我太迷恋(?regex)意味着在url调度程序中,它将寻找一个?varname=声明,而不是简单地匹配regex并将变量名传递给视图。
import json
from django.http import HttpResponse, HttpResponseRedirect

def ajax_graph_request(request, id):
   depth = request.GET.get('depth','1') 
   result = {'id':id, 'depth':depth}
   data = json.dumps(result)
   return HttpResponse(data, mimetype='application/json')
console.log(record);
$.getJSON("/ajax/", { id:record, depth:2 }).done(function( data ){
    console.log(data);
});
22145 (from js console print)
{"depth": "2", "id": null}
$.getJSON("/ajax/"+record, { depth:2 }).done(function( data )