如何在 Django 的模型 clean
方法中引发字段绑定(bind) ValidationException
?
from django.core.exceptions import ValidationError
def clean(self):
if self.title:
raise ValidationError({'title': 'not ok'})
上面没有将错误添加到title
字段(使用表单时),而是添加到非字段错误(__all__
)。
我知道如何在表单中执行此操作 (self._errors['title'] = self.error_class([msg])
),但是 self._errors
在模型 clean
方法中不存在。
最佳答案
根据 Django 文档,这可以使用 model.clean()
这提供了您所要求的一切!
注释上方的方框似乎是您要查找的内容:
raise ValidationError({
'title': ValidationError(_('Missing title.'), code='required'),
'pub_date': ValidationError(_('Invalid date.'), code='invalid'),
})
code 参数是一个 kwarg,因此是可选的。 (它在示例中,所以我将其粘贴过来)
在你的情况下,我猜你需要这样的东西:
raise ValidationError({
'title': ValidationError('not ok'),
})
关于python - 在模型的 `clean` 方法中引发与字段关联的 ValidationError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16633813/