我只是想知道GET或POST字典中的条目顺序是否会发生变化?
如果你有一个3人的名单,你会说:
模板:
for x in listof3people:
<input type="hidden" name="x.name">
<input type="number" name="birthday">在视图中,当您执行getlist(name)时,信息的顺序永远不会更改正确吗?
因此,如果查询按该顺序提取mark、mindy和sam,get列表将始终显示:
马克和他的生日,明迪和她的生日,山姆和他的生日按顺序排列。之所以我是askiong,是因为我必须根据位置链接信息,所以找到"bar“的位置,然后将数据拉到位于相同位置的嵌套列表中。
发布于 2014-09-16 18:10:07
在幕后,用于GET和POST的GET类和POST类是根据six.moves.urllib.parse.parse_qsl的输出构建的。这是基于标准的urllib.parse_qsl函数,您可以从源代码中看到它确实维护了URL中给出的顺序:
https://github.com/python/cpython/blob/a54346b3a1232cdd503abc4d4e9e526ba65b26b3/Lib/urllib/parse.py
这样的输入应该按照在文档中显示的相同顺序放入URL/编码表单数据:浏览器是否在GET/POST上保留相同名称的输入顺序?。
注意,我说的只是,关于同一键的多个值的,使用getlist获取。QueryDict并不比任何其他dict-derived类更能保证dict键的顺序。
因此,这是可能的,但就我个人而言,我会传递一个明确的标识符,而不是依赖它。
发布于 2014-09-16 18:00:31
我想你说的是QueryDict。这是一个定制的Python字典。通常情况下,并不能保证键总是按它们被推入的顺序显示。因此,为了达到您的目的,您可以在表单中使用一些额外的权重值,以便根据这些值对传入的数据进行排序。
https://stackoverflow.com/questions/25874614
复制相似问题