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']}