2010-11-03 80 views
0

我试图发送一个字典从jQuery来Django中使用的getJSON电话:字典对象混淆从jQuery到Django!

jQuery.getJSON(URL,JSONData,function(returnData){}); 

的JSONData对象的格式如下:

JSONData = { 
    year:2010101, 
    name:"bob", 

    data:{ 
      search:[jim,gordon], 
      register:[jim], 
      research:[dave], 
      } 
} 

这是编程方式放在一起,但看起来不错。

一旦传递给Django的“年”和“名”的对象是符合市场预期。但是,数据对象包含以下键/值 - “search [0]”:“jim”,“search [1]”:“gordon”,“register [0]”:“jim”,“research [0]” :“dave”,而不是预期的“搜索”:(数据阵列),“注册”:(数据阵列),“研究”:(数据阵列)。

如果我使用对象代替数组,则会发生类似的情况。

这是与对象的Django的解释的问题吗?

任何想法如何我可以纠正这个......干净?

编辑:

我现在已经简化了数据,以使测试更加简单:

JSONData = { 
    year:2010101, 
    name:"bob", 
    search:[jim,gordon], 
    register:[jim], 
    research:[dave], 

} 
+0

你还可以发布你如何处理你的视图中的数据? – 2010-11-03 23:58:44

+0

在这个阶段,我真的返回request.GET.keys() – danspants 2010-11-04 00:00:05

+0

现在我已经承认失败,而不是一个列表我使用了一个字符串,并在Django结束分裂它。 – danspants 2010-11-04 00:42:23

回答

3

request.GET不是一个普通的Python dict的实例,但django class QueryDict的,可以处理多个值为一个关键。如果您需要使用多个值作为列表返回的密钥,则必须使用getList

编辑:另外看看这个jQuery parameter settings

+0

不,问题依然存在,数据被错误地分割,并且关键名称被破坏。例如request.GET.getlist(“Search”)应该给我关联的列表,而不会返回任何内容。 request.GET.getlist(“Search [0]”)给了我上面的单个值。 – danspants 2010-11-04 00:25:46

+0

啊哈!必须在参数设置中设置“传统=真”。干得不错! – danspants 2010-11-04 02:26:00