在工作中,会遇到表单填写的数据需要单独验证,这是可以利用Django的Form或者是ModelForm来解决
from django import forms from django.forms import fields from django.forms import ValidationError class ObjectsCreateForm(forms.Form): name = fields.CharField(max_length=300) def clean_name(self): # 检查name是否唯一 name = self.cleaned_data.get('name') res = Objects.objects.filter(name=name).exists() if res: raise ValidationError('name already in the database') return name
注意:clean_字段名()方法必须要有返回值,否则使用form.cleaned_data时数据为空。