我有一个具有以下前端结构的Django应用程序:
Jquery / input.html
<script type="text/javascript">
$(document).ready(function(){
var expr1 = {"name":{"key":""}};
var expr2 = {"name":{"key":""}};
var childFilter1 = {"filter": {"expr":expr1}};
var childFilter2 = {"filter": {"expr":expr2}};
var parentFilter = {"filter": {"func":"AND","leftChild":childFilter1,"rightChild":childFilter2}};
var childFilter3 = {"filter": {"expr":""}};
var wholeParentFilter = {"filter": {"func":"OR","leftChild":childFilter3,"rightChild":parentFilter}};
$.ajax({
url: "/input/",
type: "GET",
data: wholeParentFilter,
dataType: "json",
success: function(input_data){
//alert(input_data);
}
});
})
</script>
Django / views.py:
def input(request):
data = request.GET["filter"]
print data
return HttpResponse(json.dumps("ABC"))
当我尝试使用request.GET [&#34; filter&#34;]获取JSON值时,Django会返回以下错误并且不打印任何数据:
data = request.GET["filter"]
File "C:\Python27\lib\site-package\django-1.6.2-py2.7.egg\django\utils\datastrucutre.py", line 301, in __getitem__
raise MultiValueDictKeyError(repr(key))
MultiValueDictKeyError: "'filter'"
我想使用&#34; filter&#34;作为树,因为它可能包括子过滤器,所以我不想更改&#34;过滤器&#34;在JSON中,是否有从前端到末端传输数据的想法?非常感谢。
问题是由wholdPatrentFilter引起的,没有转移到JSON对象中,添加$ .toJSON就可以解决它。
$.ajax({
url: "/input/",
type: "GET",
data: $.toJSON(wholeParentFilter),
dataType: "json",
success: function(input_data){
//alert(input_data);
}
});
非常感谢@alecxe的帮助。