Django中的'BooleanField'对象没有属性'use_required_attribute'

时间:2019-06-30 14:12:46

标签: python django forms

标题显示我在使用布尔字段时遇到错误:

'BooleanField'对象在django中没有属性'use_required_attribute'

Models.py

class contactData(models.Model):

    ...
    mapActivated         = models.BooleanField(default=True)

forms.py:

class ContactForm(forms.ModelForm):

class Meta:
    model = contactData
    fields = [
        'vision',
        'horario',
        'image_path',
        'mapActivated',
        ]
    labels = {
        'image_path': '',    
    }

    widgets = {
        'mapActivated': forms.BooleanField(required=True)
    }

有人可以帮我吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

您将表单 fields 与表单 widgets 混淆。 forms.BooleanField [Django-doc]不是 小部件,它是一个表单字段。小部件例如是CheckboxInput [Django-doc],它指定如何以HTML形式呈现它。

您可以将字段指定为:

class ContactForm(forms.ModelForm):
    mapActivated = forms.BooleanField(required=True)

    class Meta:
        model = contactData
        fields = [
            'vision',
            'horario',
            'image_path',
            'mapActivated',
        ]
        labels = {
            'image_path': '',    
        }

通过将其设置为required=True,您需要用户选中该复选框。这本身可能不是您想要执行的操作。如果用户可以自由选择/取消选中它。删除required=True就足够了。