如何在Django中获取复选框值?
<tr name="item">
<td><input type="checkbox" ></td>
<td>>{{ foo }}</td>
<td> {{ bar }} </td>
</tr>
现在我想在 Django 的视图中,使用 request.POST.getlist('item')
来获取值,比如 foo
和 bar
。但是它返回的是空值。
4 个回答
3
你的问题有点不太合理。foo
和bar
并不是复选框的值,它们看起来只是表格中的普通文本。如果你想把它们作为值提交,你需要把它们放在某个表单里。这和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”。