假设我有一个包含两个字段的类,并且这两个字段都是空白的,但我希望至少填充一个字段。
class MyClass(models.Model):
url1 = models.URLField(blank=True)
url2 = models.URLField(blank=True)
def clean(self):
if not self.url1 and not self.url2:
raise forms.ValidationError('message here')
return self.url1
我认为因为我将两个字段设置为空白= True。 不知道在这里使用clean()是否正确以及从中返回的内容。
{{form.non_field_errors}}
中没有显示任何内容由于
答案 0 :(得分:2)
您可以在表单对象上使用clean()
方法。目前,您尝试不在Form对象上进行数据验证,而是在数据库模型上进行数据验证。
查看https://docs.djangoproject.com/en/dev/ref/forms/validation/以了解有关表单验证的更多信息。
from django.db import models
from django import forms
class MyClass(models.Model):
"Your model"
url1 = models.URLField(blank=True)
url2 = models.URLField(blank=True)
class MyClassForm(forms.ModelForm):
"Your form object"
def clean(self):
if not self.cleaned_data['url1'] and not self.cleaned_data['url2']:
raise forms.ValidationError('message here')
return self.cleaned_data
class Meta:
model = MyClass