带有复选框的 Django 表单始终为 False

问题描述 投票:0回答:2
python django checkbox
2个回答
2
投票
<form action="annotate_page" method="post">{% csrf_token %}

      <input id="repeat" name="something" type="checkbox" >
                <label for="repeat">Repeat Sentence?</label>


      <br>

      <button type="submit">Next</button><br>

 </form>

并且在视野中

if request.method=="POST":

    form = AnnotateForm(request.POST)

    if form.is_valid():
        print(request.POST)#prints only csrf_token in Query_dict
        print(form.cleaned_data["something"])#Always false

您需要在输入字段中输入名称,否则不会被捕获


0
投票

我刚刚遇到了一个相关的问题。我正在创建一个产品表单,在使用该页面期间,该表单可以通过 AJAX 调用预先加载,我正在调用 - 使用 Jquery - 我返回的对象称为 data , inventory 是我感兴趣的布尔值.

$("#edit-product-form").find("#id_inventory").val(data.inventory)

但它真正需要的是

$("edit-product-form").find("#id_inventory").prop("checked", true).val(data.inventory)

这样,复选框就被正确勾选(或取消勾选),并且它仍然具有 val 集,这是提交时正在读取的内容。

我还添加了一个事件,每当我选择该复选框时,它都会将值分别更改为“true”或“false”,以使 Django 和 Form 之神高兴。

© www.soinside.com 2019 - 2024. All rights reserved.