带有RadioSelect形式的Python/Django BooleanField模型默认为空

Joe*_*e J 2 django widget modelform radio-button

我正在使用Django ModelForm,其中我的模型包含BooleanField,与该BooleanField关联的表单窗口小部件是RadioSelect窗口小部件.我希望RadioSelect小部件呈现没有选择的选项,因此用户必须明确做出选择,但如果表单验证没有选择则表单验证失败.有没有办法做到这一点?

models.py

myboolean = models.BooleanField(choices=YES_NO)
Run Code Online (Sandbox Code Playgroud)

forms.py

class myModelForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(myModelForm, self).__init__(*args, **kwargs)
        self.fields['myboolean'].widget = forms.RadioSelect(choices=YES_NO)
Run Code Online (Sandbox Code Playgroud)

And*_*eev 6

您的代码实际上可以满足您的需求.它会在没有选择选项的情况下呈现单选按钮,并在未选择任何内容时生成错误消息.

关于您的表单代码的小注释.我会这样做:

class myModelForm(forms.ModelForm):

    myboolean = forms.BooleanField(widget=forms.RadioSelect(choices=YES_NO))

    class Meta:
        model = MyModel
Run Code Online (Sandbox Code Playgroud)