Элегантный способ перевести пользовательское сообщение об ошибке django rest framework - PullRequest
0 голосов
/ 02 марта 2020

Я хочу построить 2 двухязыковых API. Я использую пользовательский обработчик исключений и пытаюсь отлавливать ошибки на сериализаторе, как это (убрал много стандартного кода). Клиент получит код ошибки и найдет собственный словарь.

Я хочу знать, есть ли лучший способ сделать это.

class OrgDuplicateName(APIException):
    status_code = 500 # not 201
    default_detail = ErrorCode.OrgDuplicateName.name
    default_code = ErrorCode.OrgDuplicateName


class OrganizationSerializer(serializers.ModelSerializer):


    class Meta:
        model = Organization
        fields = "__all__"

    def is_valid(self, raise_exception=False):
            if self._context["request"]._stream.method == "POST":
                if Organization.objects.filter(name=self.initial_data["name"]).exists():
                    raise OrgDuplicateName
                    break
                else:
                    return True
...