Jul*_*ins 4 django validation django-rest-framework
from rest_framework.exceptions import ValidationError
def to_representation(self, request_data):
raise ValidationError({
'field_name': ["Field not allowed to change"]
})
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,如何抛出多个验证错误?我想把它们当作各自的领域展示出来.
你抛出一个ValidationError,里面有多个字段错误:
raise ValidationError({
'field_name_1': ["Field not allowed to change"],
'field_name_2': ["Field not allowed to change"],
})
Run Code Online (Sandbox Code Playgroud)
小智 6
我不建议仅验证一个函数内的每个字段。相反,您应该做的是使用一个函数来验证一个字段,这更容易、更简单。如果您想进行多次验证,可以在链接中找到处理多个错误的文档。该文档显示了以下示例:
# Good
raise ValidationError([
ValidationError(_('Error 1'), code='error1'),
ValidationError(_('Error 2'), code='error2'),
])
# Bad
raise ValidationError([
_('Error 1'),
_('Error 2'),
])
Run Code Online (Sandbox Code Playgroud)
这是我的一个例子:
def validate_field(value):
errors = []
if len(value) > 50:
errors.append(ValidationError(
'Error message'
))
if not value.isalpha():
errors.append(ValidationError(
'Error message'
))
if errors:
raise ValidationError(errors)
Run Code Online (Sandbox Code Playgroud)