У меня есть сериализатор, который проверяет поля на основе значений других полей. В ответе об ошибке я хотел бы показать каждую ошибку поля как полевую ошибку, а не показывать все под "non_field_errors", что и произойдет, если я буду поднимать ValidationError в методе проверки уровня объекта. Ниже приведен пример того, чего я пытаюсь достичь:
MySerializer(ModelSerializer):
...
def validate(self, data):
field_val1 = data['field_val1']
field_val2 = data['field_val2']
if not self._is_field_valid(field_val1, field_val2):
# The below line is how I would do what I want with Django
# Forms, however, it not valid in DRF
self._errors['field_val1'] = 'this field is not valid'
Требуемый ответ об ошибке:
{'field_val1': ['this field is not valid']}