Задать вопрос
@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 может быть любое другое неверное число
  • Вопрос задан
  • 109 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
  • Яндекс Практикум
    Мидл Python-разработчик
    6 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы