Sobes.tech
Back to questions
Junior — Middle
50

Каким образом осуществляется проверка данных, поступающих через сериализаторы в Django REST Framework?

Companies where asked
Баланс-ПлатформаБаланс-Платформа

Answer from AI

sobes.tech AI

В Django REST Framework проверка данных через сериализаторы происходит с помощью метода is_valid(). При вызове этого метода сериализатор выполняет валидацию всех полей на основе заданных правил: типов данных, обязательности, ограничений длины, пользовательских валидаторов и методов validate_<fieldname> или validate.

Если данные не проходят проверку, в атрибуте serializer.errors появляется словарь с описанием ошибок. Валидация может включать как встроенные проверки, так и кастомные, определённые разработчиком.

Пример:

from rest_framework import serializers

class UserSerializer(serializers.Serializer):
    username = serializers.CharField(max_length=100)
    age = serializers.IntegerField()

    def validate_age(self, value):
        if value < 18:
            raise serializers.ValidationError("Возраст должен быть не меньше 18")
        return value

serializer = UserSerializer(data={'username': 'ivan', 'age': 16})
if serializer.is_valid():
    valid_data = serializer.validated_data
else:
    print(serializer.errors)  # {'age': ['Возраст должен быть не меньше 18']}