如何在 django 中获取复选框值?
Posted
技术标签:
【中文标题】如何在 django 中获取复选框值?【英文标题】:how to get checkbox value in django? 【发布时间】:2011-05-27 03:07:36 【问题描述】:<tr name="item">
<td><input type="checkbox" ></td>
<td>> foo </td>
<td> bar </td>
</tr>
现在我希望在 django 视图中 request.POST.getlist('item')
返回即 foo
和 bar
的值。但它返回 null。
【问题讨论】:
你为什么不为此使用 Form 对象? 你甚至有一个错字,第 3 行中的td
元素有两个右括号:<td>>
【参考方案1】:
复选框的工作方式与其他表单输入稍有不同,因此如果您检查从包含复选框的表单发送的帖子,有两种可能性...
<input type="checkbox" name="cb1" />
如果选中该复选框,您的查询集将如下所示:
queryset = 'cb1': 'on'
如果没有检查:
queryset =
因此,您必须检查相关表单元素名称是否存在:
if 'cb1' in queryset:
"item is selected"
else:
"item is not selected"
【讨论】:
【参考方案2】:你的问题很荒谬。 foo
和 bar
不是复选框值 - 它们似乎是表格中的简单文本元素。如果您希望将它们作为值发布,则需要将它们放入某个表格中。这与 Django 无关。
【讨论】:
【参考方案3】:我不确定你问的所有问题,但如果你想在用户提交表单时获得“foo”和“bar”,你必须将它们添加到隐藏或文本字段等表单元素中(取决于关于用户是否可以修改它们)。
当您提交表单时,服务器永远不会收到整个 DOM。
此外,您必须找到一种方法来指示哪个复选框属于 foo & bar。
【讨论】:
【参考方案4】:正如其他人所说,这是简单的 html - 无论页面上显示什么,您都必须将 foo 和 bar 值放在输入标签的“value”属性上。这就是您需要做的所有事情。
<tr name="item">
<td><input type="checkbox" name="item" value="foo,bar"></td>
<td>> foo </td>
<td> bar </td>
</tr>
【讨论】:
以上是关于如何在 django 中获取复选框值?的主要内容,如果未能解决你的问题,请参考以下文章
单击表单复选框并传递复选框布尔值时如何在Django中刷新view.py?
如何获取标签名称作为 Django 模板中选中/选中复选框的值
如何通过 django 读取 excel 文件中的复选框值?