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()
}
如何安装两个字段之一,"电话"或"电子邮件"的强制性填写?
目前还不完全清楚你在问什么,但如果目的是要求phone
或email
中的至少一个为非空,请使用自定义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=false
、 null=false
,则 ModelForm 将根据需要将其处理。默认情况下,这些设置为False
。
https://docs.djangoproject.com/en/dev/ref/models/fields/#blank