django - GET 或 POST 字典中的项目顺序是否会改变? Django

标签 django python-2.7

我只是想知道 GET 或 POST 字典中的项目顺序是否会改变?

如果您有 3 个人的名单,并且您说:

模板:

 for x in listof3people:
    <input type="hidden" name="x.name">
    <input type="number" name="birthday">

在 View 中执行 getlist(name) 时,信息的顺序永远不会改变,正确吗?

因此,如果查询按顺序提取 mark 、 mindy 和 sam ,则获取列表将始终显示:

按顺序是马克和他的生日、明迪和她的生日、萨姆和他的生日。我之所以这么问,是因为我必须根据位置链接信息,因此找到“bar”的位置,然后将数据拉到嵌套列表中处于同一位置的数据。

最佳答案

在幕后,用于 GETPOSTQueryDict 类是根据 six.moves.urllib 的输出构建的.parse.parse_qsl。这是基于标准的 urllib.parse_qsl 函数,从源代码中可以看到它确实维护了 URL 中给出的顺序:

https://github.com/python/cpython/blob/a54346b3a1232cdd503abc4d4e9e526ba65b26b3/Lib/urllib/parse.py

此类输入应该按照它们在文档中出现的顺序放入 URL/编码表单数据中: Do browsers preserve order of inputs with same name on GET/POST?

请注意,我讨论使用 getlist 获取的同一键的多个值。与任何其他 dict 派生类相比,QueryDict 不保证 dict 键的顺序。

所以这是可能的,但就我个人而言,我会传递一个明确的标识符而不是依赖它。

关于django - GET 或 POST 字典中的项目顺序是否会改变? Django ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25874614/

相关文章:

javascript - Odoo - 从树头中的新按钮加载表单 View

Python创建多线程并创建处理时间

python - 在 setup.py 中强制执行 python 版本

python - 如何在 Python 中获取用户输入的字符网格

python - 根据字符串中的第一个字符查找字符串列表中元素的第一次出现

python - 如何在抽象模型的 ManyToMany 字段中设置 related_name?

python - 输出/打印 "readable"字典

python - Django - 如何在事件前 5 天发送邮件?

django - Redis + Node.js + Socket.io + Django/Celery 设置中的奇怪行为。断开连接的套接字仍然接收消息

python - 添加了望塔日志记录后,django 应用程序无法正常工作