如何在 django 形式中设置不必要的字段


class RequestForm(forms.ModelForm):
    """ Online request.
    """
    class Meta:
        model = Request
        fields = ["language", "daytime", "daysofweek", "phone", "email", "name"]
        widgets = {
                'language': forms.Select(),
                'daytime': RadioSelectNotNull(),
                'daysofweek': forms.CheckboxSelectMultiple()
       }

如何安装两个字段之一,"电话"或"电子邮件"的强制性填写?

目前还不完全清楚你在问什么,但如果目的是要求phoneemail中的至少一个为非空,请使用自定义clean方法来执行此操作:

def clean(self):
    cleaned_data = super(ContactForm, self).clean()
    if not (cleaned_data.get('phone') or cleaned_data.get('email')):
        raise ValidationError('At least one of phone or email is required.')
    return cleaned_data

如果在模型字段上设置了 blank=falsenull=false ,则 ModelForm 将根据需要将其处理。默认情况下,这些设置为False

https://docs.djangoproject.com/en/dev/ref/models/fields/#blank

最新更新