如何在Django中接收文本框数组的发布值?

时间:2011-06-18 07:55:51

标签: python html django

我有像这样的文本框数组

<input type="text" value="" name="key[]" />
<input type="text" value="" name="key[]" />
<input type="text" value="" name="key[]" />
在python中

将发布的值作为

访问
keys = postDict['key[]']

当我打印变量键的值时,它只打印最后一个文本框值。如何以列表或数组的形式接收发布的值。

问题

问题是,当单击名为 MORE 的按钮时,我将文本框附加到名为的div。表单未发布运行时生成的文本框值。

2 个答案:

答案 0 :(得分:1)

请勿调用字段key[]。这是一个PHP主义。

使用request.POST.getlist('key')获取所有值。

答案 1 :(得分:1)

正如丹尼尔所说,使用request.POST.getlist('key')来获取所有值。但是,从你的评论来看,听起来你试图获取数据的字段的名称对于所有元素都是相同的,在这种情况下.getlist()只返回它可以得到的最后一个。 (.get())也会发生同样的情况。

所以,Django IS会收到您想要的原始数据,但是当您尝试.get()时会因为密钥冲突而压缩它。

是否有什么阻止您为每个文本输入使用不同的名称?如果没有,我会沿着这条路走下去,因为它总体上更加健全。

PS - 你的例子中的PHPism让我觉得你对Django来说很新。如果是这种情况,请查看Django forms library

的精彩指南