我已经使用其他代码示例将数据从我的网址成功传递到我的视图,所以我不确定为什么这个有任何不同,但这就是我对ajax调用视图的方法。我正在尝试传递id和深度的可选参数:
urlpatterns += patterns('links.ajax',
url(r'^ajax/(?P<id>\d+)*$', 'ajax_graph_request', name='ajax_graph_request'),
)
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}
因此请求正确地传播到正确的视图,但变量不是。这是为什么?
答案 0 :(得分:2)
您的网址格式为ajax/(?P<id>\d+)
,即视图ajax_graph_request
需要id
作为参数。通过将其作为数据参数{ id:record, depth:2 }
发送。它作为kwarg
而不是参数id
传递。
将.getJson
方法更改为
$.getJSON("/ajax/"+record, { depth:2 }).done(function( data )
它会正常工作。