Встречается на собеседованиях • сегодня
На чем делаешь валидацию входных данных в DRF
В DRF валидацию входных данных можно делать несколькими способами, в зависимости от уровня контроля:
1. **Поля сериализатора** – базовый уровень. Используются встроенные валидаторы (`max_length`, `required` и т. д.) или кастомные через `validators=[]`.
```python
from rest_framework import serializers
class UserSerializer(serializers.Serializer):
email = serializers.EmailField()
age = serializers.IntegerField(min_value=18)
```
2. **Метод `validate_`** – для проверки конкретного поля.
```python
def validate_age(self, value):
if value > 100:
raise serializers.ValidationError("Age too high")
return value
```
3. **Метод `validate()`** – для комплексной проверки нескольких полей.
```python
def validate(self, data):
if data["start_date"] > data["end_date"]:
raise serializers.ValidationError("Dates are invalid")
return data
```
4. **Валидаторы уровня модели** – если данные сохраняются в БД, можно добавить `validators` в модель (например, `RegexValidator`).
Для сложной логики иногда выносят валидацию в отдельные классы или используют сторонние библиотеки (например, `pydantic`).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы