Django 表单中的有序列表表单值

Posted

技术标签:

【中文标题】Django 表单中的有序列表表单值【英文标题】:Ordered list form value in Django form 【发布时间】:2011-09-09 02:11:38 【问题描述】:

有没有一种方法可以将无限制的值列表作为表单的一部分提交并在 Django 中将其作为有序列表检索?我看到了这个问题:Django equivalent of php's form value array/associative array,这是有道理的,但是由于这些值是使用与单独的 POST 值相同的名称提交的,所以我假设它们是无序的。

理想情况下,我希望在前端这样:

<input type="hidden" name="list[0]" value="blah">
<input type="hidden" name="list[1]" value="blah2">
<input type="hidden" name="list[2]" value="blah3">

并且能够查看提交表单时哪个列表项出现在哪个位置。

我希望它按照前端 html 中确定的顺序排序,而不是按值排序。我知道getlist(),但这并不能保持秩序。

【问题讨论】:

【参考方案1】:

据我所知,方括号表示法是 PHP 的约定,而不是 HTML 本身。

似乎有一个使用点表示法生成扩展字典的 Django 解决方法 (http://***.com/questions/2527476/phps-form-b​​racket-trick-is-to-djangos)。没试过,貌似可以的

另一种解决方案是自己解析表单名称,从方括号中提取数字并生成自己的有序列表

(免责声明:我只是一个普通的程序员,并且非常愿意承认我错了 - 但希望 SO 审核系统能够缓和任何愚蠢的 cmets 到遗忘)

【讨论】:

以上是关于Django 表单中的有序列表表单值的主要内容,如果未能解决你的问题,请参考以下文章

Django 模型中的有序列表

用于复制和粘贴垂直列表的 Django 表单字段

如何创建 Django 有序列表

04 列表和表单

04 列表和表单

无法在视图中设置 Django 表单的字段值