@Lepilov

Как изменить формат вывода ошибки при валидации поля в сериализаторе?

Есть такой сериализатор

class ElementCommonInfoSerializer(serializers.ModelSerializer):

    self_description = serializers.CharField(required=False, allow_null=True,
                                             validators=[RegexValidator(regex=r'^[a-zA-Z0-9,.!? -/*()]*$',
                                                                        message='The system detected that the data is not in English. '
                                                                                'Please correct the error and try again.')]
                                             )
    ....

    class Meta:
        model = Elements
        fields = ('self_description',......)


При возникновении исключения отдает ошибку в таком виде

{
    "self_description": [
        "The system detected that the data is not in English. Please correct the error and try again."
    ]
}


Т.е. ключем является имя поля. мне на фронт надо отдавать с другим ключем

{
    "general_errors": [
        "The system detected that the data is not in English. Please correct the error and try again."
    ]
}


Как это можно изменить?
  • Вопрос задан
  • 20 просмотров
Решения вопроса 1
alternativshik
@alternativshik
1. переписать validate у сериализатора.
2. во вьюхе is_valid() и отдать ошибки в ответе в нужном виде.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы