我正在处理将数据从CSV保存到Django数据库的导入脚本。保存过程如下所示:
instance = ModelName(**kwargs)
instance.save()
# No errors reported
但是当我尝试使用管理面板编辑并保存一些项目时,它会向我显示一些消息,表明某些字段值(如URL字段和自定义验证程序)无效。
问题:有没有办法使用Django管理验证器从python代码验证模型实例?
答案 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()