使用Django管理验证器从python验证模型实例

时间:2017-05-29 23:46:47

标签: python django validation

我正在处理将数据从CSV保存到Django数据库的导入脚本。保存过程如下所示:

instance = ModelName(**kwargs)
instance.save()
# No errors reported

但是当我尝试使用管理面板编辑并保存一些项目时,它会向我显示一些消息,表明某些字段值(如URL字段和自定义验证程序)无效。

问题:有没有办法使用Django管理验证器从python代码验证模型实例?

1 个答案:

答案 0 :(得分:1)

问题是save()默认情况下不会验证。

要解决此问题,您可以在致电save之前致电模型full_clean method进行验证。 所以,在引擎盖下,

  

此方法调用Model.clean_fields(),Model.clean()和   Model.validate_unique()(如果validate_unique为True),按此顺序   并引发具有message_dict属性的ValidationError   包含所有三个阶段的错误。

代码看起来像这样:

instance = ModelName(**kwargs)
instance.full_clean() #Does validation here
instance.save()