Как передать проверенные данные другому классу пользовательского валидатора в DRF?

У меня есть такой serializer.py

class PostSerializer(serializers.ModelSerializer):
    title = serializers.CharField(validators=[TitleValidator()])
    slug = serializers.CharField(validators=[SlugsValidator()], max_length=100, required=False)

и у меня есть два класса валидаторов для этих полей

class TitleValidator:
    
    MIN_TITLE_LENGTH = 20
    
    def __call__(self, title: str):
        if len(title) < self.MIN_TITLE_LENGTH:
            raise ValidationError(f"Min title length is {self.MIN_TITLE_LENGTH}")
        return title


class SlugsValidator:

    def __call__(self, slug):
        # Get title here
        return slug

Как передать проверенный заголовок в класс SlugValidator?

Я пытался передать данные непосредственно в экземпляр TitleValidator, но единственное, что я могу получить, это само поле, а не фактическое значение. Другой способ - передать данные в метод validate(), но похоже, что сначала выполняются валидаторы пользовательского класса, и я получаю ошибку, что аргумент title не предоставлен. Есть ли способ, которым я могу этого добиться?

Кажется, что можно получить все поля, если определить все валидаторы класса внутри Meta класса, но мне интересно, возможно ли это без использования Meta класса

Вернуться на верх