Zar*_*doz 5 python django django-models
如何ValidationException在 django 的模型clean方法中提高字段边界?
from django.core.exceptions import ValidationError
def clean(self):
if self.title:
raise ValidationError({'title': 'not ok'})
Run Code Online (Sandbox Code Playgroud)
以上没有将错误添加到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'),
})
Run Code Online (Sandbox Code Playgroud)
code 参数是一个 kwarg,因此是可选的。(它在示例中,所以我已将其粘贴过来)
在你的情况下,我的猜测是你需要这样的东西:
raise ValidationError({
'title': ValidationError('not ok'),
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1954 次 |
| 最近记录: |