与Django一起使用AJAX时的多变量错误

时间:2014-05-07 15:05:37

标签: python json django

我有一个具有以下前端结构的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的帮助。

0 个答案:

没有答案