我创建了一个具有多个复选框(分组)的表单,当发布这些数据时,它看起来如下所示:
<QueryDict: {u'action': [u'delete'], u'mails': [u'1', u'2']}>但是现在,当我试图访问“邮件”中的数据时,我只得到了最后的结果:(其中postdata是我的Querydict)
def mail_action(postdata, character):
if postdata['action'] == "delete":
for mail in postdata['mails']:
print mailwo用这个只能打印"2“
我需要做些什么才能得到完整的“邮件”清单?
发布于 2014-06-01 16:07:40
根据Django的QueryDict.__getitem__(key)文档,它说:“如果键有多个值,__getitem__()将返回最后一个值。”所以你所看到的行为是有意的。
要获取所有值,请尝试使用QueryDict.getlist(key, default),它“以请求的键作为Python返回数据。如果键不存在且没有提供默认值,则返回一个空列表。它保证返回某种类型的列表,除非默认值不是list”。
因此,您的代码可以是:
def mail_action(postdata, character):
if postdata['action'] == "delete":
for mail in postdata.getlist('mails'):
print mailhttps://stackoverflow.com/questions/23981450
复制相似问题