当前位置 主页 > 网站技术 > 代码类 >

    Django框架model模型对象验证实现方法分析(2)

    栏目:代码类 时间:2019-10-09 21:02

    若要引发一个特定字段的异常,可以使用一个字典实例化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程序设计有所帮助。