@jikq

Как переопределить метод validate?

class ProductSerializer(ModelSerializer):
    discount = serializers.ChoiceField(choices=[0, 10, 15, 20, 30, 50])

    def validate(self, data):
        if data['discount'] not in [0, 10, 15, 20, 30, 50]:
            raise serializers.ValidationError(f"invalid discount")
        
        return super().validate(data)

Есть такой код и по идее, когда серверу передать невалидный discount, то должна быть ошибка 

{
    "discount": [
        "invalid discount"
    ]
}

но у меня почему-то другая: 

{
    "discount": [
        "\"203\" is not a valid choice."
    ]
}

На месте 203 может быть любое другое неверное число
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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