<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
您需要在输入字段中输入名称,否则不会被捕获
我刚刚遇到了一个相关的问题。我正在创建一个产品表单,在使用该页面期间,该表单可以通过 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 之神高兴。