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

时间:2014-09-05 17:53:50

标签: python django web django-forms

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()
       }

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

2 个答案:

答案 0 :(得分:2)

您并不完全清楚自己要问的内容,但如果目的是要求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

答案 1 :(得分:0)

如果您设置模型字段blank=falsenull=false,ModelForm会根据需要对其进行处理。默认设置为False

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