【问题标题】:how to get checkbox value in django?如何在 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;

标签: python html django django-templates


【解决方案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>
        

        【讨论】:

          猜你喜欢
          • 2018-07-21
          • 2011-01-25
          • 2023-03-22
          • 1970-01-01
          • 2016-02-28
          • 2023-03-13
          • 2012-09-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多