获取 Django 视图中的复选框列表

Posted

技术标签:

【中文标题】获取 Django 视图中的复选框列表【英文标题】:get the list of checkbox post in django views 【发布时间】:2012-05-03 20:10:48 【问题描述】:

我的模板中有这段代码:

% for email in emails %
  %if email%
     <input type="checkbox" name="email" value="email" /> email<br />
  % endif %
% endfor %

所以模板中的输出是:

email1@sample.com
email2@sample.com
email3@sample.com
...

在我看来,我为此打印了我的 request.POST。

print request.POST
print request.POST['email']
for email in request.POST['email']:
 print email

我得到了这个输出:

<QueryDict: u'email': [u'email1@sample.com', u'email2@sample.com', u'email3@sample.com'], ..., u'csrfmiddlewaretoken': [u'05e5bdb542c3be7515b87e8160c347a0', u'05e5bdb542c3be7515b87e8160c347a0']>
email3@sample.com
e
m
a
i
l
3
@
s
a
m
p
l
e
.
c
o
m

我的问题是,如何在我的视图中获取电子邮件列表? 我希望输出是这样的..

email1@sample.com
email2@sample.com
email3@sample.com
...

【问题讨论】:

【参考方案1】:

使用request.POST.getlist:

以 Python 列表的形式返回带有请求键的数据。如果键不存在并且没有提供默认值,则返回一个空列表。除非提供的默认值不是列表,否则保证返回某种列表。

【讨论】:

更具体地说,for email in request.POST.getlist('email') @burhan 是的,但我认为阅读一些文档并自己编写该行比复制粘贴更有帮助。 我同意(这就是为什么我最初 +1 你的答案),但为了完全我添加了它。

以上是关于获取 Django 视图中的复选框列表的主要内容,如果未能解决你的问题,请参考以下文章

Django 2.2 如何在列表视图中禁用复选框

Django:编写一个视图以删除带有复选框的项目

Django AJAX 请求仅获取最后一个元素(不是 getlist 问题)

如何从 Django 中的复选框中获取多个值

Django:如何通过 AJAX 将 PKID 列表传递给下一个视图,然后重定向

列表视图中的 csv 和复选框将选中的复选框代码保存在 ArrayAdapter 中