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

时间:2010-12-17 13:24:45

标签: python html django django-templates

<tr name="item">
        <td><input type="checkbox" ></td>
        <td>>{{ foo }}</td>
        <td> {{ bar }} </td>


</tr>

现在我希望在django视图中request.POST.getlist('item')返回ie foobar的值。但它返回null。

4 个答案:

答案 0 :(得分:6)

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

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

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

queryset = {'cb1': 'on'}

如果没有检查:

queryset = {}

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

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

答案 1 :(得分:4)

你的问题是荒谬的。 foobar不是复选框值 - 它们似乎是表格中的简单文本元素。如果您希望将这些值作为值发布,则需要将它们放在某个表单中。这与Django无关。

答案 2 :(得分:2)

我不确定理解您提出的所有问题,但如果您想在用户提交表单时获取“foo”和“bar”,则必须将其添加到隐藏或文本字段等表单元素中(取决于如果用户可以修改它们。)

提交表单时,服务器永远不会收到整个DOM。

此外,您必须找到一种方法来指示哪个复选框属于foo&amp;杆

答案 3 :(得分:0)

正如其他人所说,这是一个简单的HTML - 你必须将你的foo和bar值放在输入标签的“value”属性上,无论页面上显示什么。这就是你需要做的一切。

<tr name="item">
        <td><input type="checkbox" name="item" value="{{foo}},{{bar}}"></td>
        <td>>{{ foo }}</td>
        <td> {{ bar }} </td>


</tr>