from rest_framework.exceptions import ValidationError
def to_representation(self, request_data):
raise ValidationError({
'field_name': ["Field not allowed to change"]
})
在上面的示例中,如何抛出多个验证错误?我想把它们当作各种各样的字段展示出来。
答案 0 :(得分:6)
你抛出一个ValidationError,里面有多个字段错误:
raise ValidationError({
'field_name_1': ["Field not allowed to change"],
'field_name_2': ["Field not allowed to change"],
})
答案 1 :(得分:1)
我不建议仅在一个函数中验证每个字段。相反,您应该做的是使用一个函数来验证一个字段,这更容易,更简单。如果要进行多次验证,可以在link上找到用于处理多个错误的文档。该文档显示以下示例:
# Good
raise ValidationError([
ValidationError(_('Error 1'), code='error1'),
ValidationError(_('Error 2'), code='error2'),
])
# Bad
raise ValidationError([
_('Error 1'),
_('Error 2'),
])
这是我的一个例子:
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)