若要引发一个特定字段的异常,可以使用一个字典实例化ValidationError,其中字典的键为字段的名称。我们可以更新前面的例子,只引发pub_date 字段上的异常:
class Article(models.Model): ... def clean(self): # Don't allow draft entries to have a pub_date. if self.status == 'draft' and self.pub_date is not None: raise ValidationError({'pub_date': 'Draft entries may not have a publication date.'}) ...
最后,full_clean()
将检查模型的唯一性约束。
Model.validate_unique(exclude=None)
该方法与clean_fields()
类似,只是验证的是模型的所有唯一性约束而不是单个字段的值。可选的exclude 参数允许你提供一个字段名称的列表来从验证中排除。如果有字段验证失败,将引发一个 ValidationError。
注意,如果你提供一个exclude 参数给validate_unique()
,任何涉及到其中一个字段的unique_together 约束将不检查。
希望本文所述对大家基于Django框架的Python程序设计有所帮助。