我在我的模型中用 clean 方法编写了一些验证,如下所示:
class MyModel(models.Model):
foo = ....
bar = ...
def clean(self):
(logic that should be applied to all instances of MyModels to validate)
我想使用这个逻辑(而不是 ModelForm.clean)来验证 MyModel 的模型表单。我希望它看起来像:
def my_view(request):
...
if request.method == 'POST':
form = MyModelForm(request.POST)
try:
# validate
form.instance.clean()
form.instance.save()
except ValidationError as e:
validation_error = e # ???
但这不起作用。我想这样做的两个原因是
- 我希望将验证应用于所有 MyModel,所以这似乎是最干燥的方法。
- 我想向用户显示模型 ValidationError 的文本。
我环顾四周,没有找到任何关于如何以这种方式进行验证的示例或解释。有没有更好的方法可以让我忽略?