如何在Django中获取复选框值?

3 投票
4 回答
11889 浏览
提问于 2025-04-16 08:40
<tr name="item">
        <td><input type="checkbox" ></td>
        <td>>{{ foo }}</td>
        <td> {{ bar }} </td>


</tr>

现在我想在 Django 的视图中,使用 request.POST.getlist('item') 来获取值,比如 foobar。但是它返回的是空值。

4 个回答

3

你的问题有点不太合理。foobar并不是复选框的值,它们看起来只是表格中的普通文本。如果你想把它们作为值提交,你需要把它们放在某个表单里。这和Django没有关系。

6

复选框的工作方式和其他表单输入有点不同,所以如果你查看一个包含复选框的表单发送的内容,会有两种情况...

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

如果复选框被选中,你的查询结果会是这样的:

queryset = {'cb1': 'on'}

如果没有被选中:

queryset = {}

所以,你需要检查一下相关表单元素的名称是否存在:

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

我不太确定你问的每个问题都理解得很透彻,但如果你想在用户提交表单时获取“foo”和“bar”,你需要把它们放在表单元素里,比如隐藏字段或者文本框(这取决于用户是否可以修改它们)。

当你提交表单时,服务器是不会收到整个网页结构的。

另外,你还需要找到一种方法来指明哪个复选框对应“foo”和“bar”。

撰写回答