如何在 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') 返回即 foobar 的值。但它返回 null。

【问题讨论】:

你为什么不为此使用 Form 对象? 你甚至有一个错字,第 3 行中的 td 元素有两个右括号:&lt;td&gt;&gt; 【参考方案1】:

复选框的工作方式与其他表单输入稍有不同,因此如果您检查从包含复选框的表单发送的帖子,有两种可能性...

<input type="checkbox" name="cb1" />

如果选中该复选框,您的查询集将如下所示:

queryset = 'cb1': 'on'

如果没有检查:

queryset = 

因此,您必须检查相关表单元素名称是否存在:

if 'cb1' in queryset: 
    "item is selected"
else:
    "item is not selected"

【讨论】:

【参考方案2】:

你的问题很荒谬。 foobar 不是复选框值 - 它们似乎是表格中的简单文本元素。如果您希望将它们作为值发布,则需要将它们放入某个表格中。这与 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 文件中的复选框值?

如何获取 Django request.POST 中所有选中复选框的值?

如何在Django的视图功能中访问Django模板中表单中的复选框[关闭]