首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Django或Python中解析QueryDict中的索引键对

问在Django或Python中解析QueryDict中的索引键对
EN

Stack Overflow用户
提问于 2016-05-11 04:31:08
回答 1查看 168关注 0票数 1

从jQuery表单中,当我提交表单时,会得到以下QueryDict:

<QueryDict: {'marc[0].sub': [''], 'csrfmiddlewaretoken': ['K6Fd4AbFP2bLmAWaD4hAGoFbzyKjHErN'], 'field': [''], 'marc[2].field': ['856'], 'marc[0].field': ['001'], 'sub': [''], 'marc[1].sub': ['a'], 'marc[2].sub': ['u'], 'marc[1].field': ['655']}>

如果我在我的视图中使用非常具体的调用,我可以获得我想要的数据。例如:print(QueryDict.getlist(request.POST, 'marc[2].sub'))

在控制台上...shows所需的'u‘,但我不确定如何以这种奇数格式遍历索引键对,其中键除了交错索引号之外没有任何关系。最后,我需要一个for each类型语句,我将在其中遍历以下内容:

marc[0].field: 001 and marc[0].sub: '' marc[1].field: 655 and marc[1].sub: 'a' marc[2].field: 856 and marc[2].sbu: 'u'

...or更好的做法是遍历更像这样的东西:

field_subs = ('001', ''), ('655', 'a'), ('856', 'u')

...to执行另一个操作。例如:

for field_sub in field_subs:

如果我需要提交更多的代码,我走错了方向,或者让它变得更困难,我会很感激任何方向。我使用的是Django 1.9

谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-06-24 11:12:18

我想是走错路了。为了简单起见,应该在$.param()中将传统参数设置为true。这就是传统型真假之间的区别:

var obj = { a: [ 1, 2, 3 ] }; $.param(myObject); // a%5B%5D=1&a%5B%5D=2&a%5B%5D=3 ==> a[]=1&a[]=2&a[]=3 $.param(myObject, true); // b=1&b=2&b=3

使用traditional is true,您可以在Django项目中使用以下代码:

request.POST.getlist('a[]') # [1, 2, 3]

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37148404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档