Django:需要勾选复选框以提交表单

Posted

技术标签:

【中文标题】Django:需要勾选复选框以提交表单【英文标题】:Django: Require Checkbox to be ticked to Submit Form 【发布时间】:2013-06-03 23:57:36 【问题描述】:

我正在 Django 中创建一个表单(使用 ModelForm)。 有很多复选框,我想这样做,以便必须选择其中一个才能提交表单。我不是指任何一个复选框,而是一个 特定 框。我在 Django 文档中找不到任何内容。任何帮助,将不胜感激。

【问题讨论】:

显示您的表格。 required=True 也没有工作? @karthikr required 选项应该放在哪里? 在表单字段定义中。 docs.djangoproject.com/en/dev/ref/forms/fields/#required 是的,当然,这就是我想要的。感谢您的帮助。 【参考方案1】:

类似

from django import forms
class MyForm(forms.Form):
    check = forms.BooleanField(required = True)
    # your other form fields

对于 BooleanField,required = True 将检查该框是否被选中。这是因为只有勾选了才会提交数据。

来源:https://docs.djangoproject.com/en/dev/ref/forms/fields/#django.forms.BooleanField

如果字段的 required=True,则验证该值为 True(例如选中复选框)。

【讨论】:

这将如何在模型中完成,因为我的 forms.py 只是要从模型中包含的字段列表,但我的模型指定是否允许字段为空白等。 在模型中放置一个需要为真的布尔值似乎没用,但我想你必须重写该字段的保存方法以检查它是否设置为 True 并引发 ValidationError 否则。

以上是关于Django:需要勾选复选框以提交表单的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery 重新填充表单提交时隐藏的 CSV 字段

jQuery,阻止表单提交,然后继续

在Django中,提交表单2后如何保留表单数据?

提交带有空复选框的 HTML 表单

Django:jQuery触发表单提交onchange of checkbox并保留重新加载时的值

有没有办法在提交之前检查表单以查看是不是已选中任何复选框?