模型和管理中的Django字段验证?
我想为Django模型的特定字段定义自己的验证例程。 我希望在管理表单中显示错误消息,但如果实体由自己的python代码保存,我也希望进行相同的验证。模型和管理中的Django字段验证?,django,django-models,django-admin,django-validation,Django,Django Models,Django Admin,Django Validation,我想为Django模型的特定字段定义自己的验证例程。 我希望在管理表单中显示错误消息,但如果实体由自己的python代码保存,我也希望进行相同的验证。 有没有一种方法可以在不破坏DRY原则的情况下执行此操作?如果要验证单个字段,可以将其添加到模型字段中 无论何时调用模型的方法,都将为该字段运行验证器。它将在验证模型表单时运行(包括在Django admin中),但在保存模型实例时不会自动运行-您必须在python代码中手动调用full\u clean m = MyModel(x=20) m.fu
有没有一种方法可以在不破坏DRY原则的情况下执行此操作?如果要验证单个字段,可以将其添加到模型字段中 无论何时调用模型的方法,都将为该字段运行验证器。它将在验证模型表单时运行(包括在Django admin中),但在保存模型实例时不会自动运行-您必须在python代码中手动调用
full\u clean
m = MyModel(x=20)
m.full_clean() # may raise ValidationError
m.save()
如果希望在保存模型时强制验证程序运行,则可以覆盖save方法并在那里调用full\u clean
。注意,当使用模型表单和django管理员时,这将导致验证运行两次