Django REST Framework: как работает контекст сериализатора?

Это довольно стандартная задача в Django REST Framework для предоставления дополнительныхargs/kwargs сериализатору установить значения полей, заданных не черезrequest.data, но через значение в параметрах URL или куки. Например, мне нужно установитьuser поле моей модели комментариев равноrequest.user по запросу POST. Эти дополнительные аргументы называются контекстом.

Несколько вопросов (1, 2) в StackOverflow предлагают переопределитьget_serializer_context() метод моегоModelViewSet, Я сделал, и это не помогает. Я попытался понять, что не так, и обнаружил, что из исходного кода я не понимаю, как эта контекстная система должна работать в целом. (документация по этому вопросу тоже отсутствует)

Кто-нибудь может объяснить, где сериализатор добавляет контекст к обычным данным запроса? Я нашел два места, где он сохраняет значения из контекста.

serializer.save (), метод, который смешивает kwargs с проверенными данными, но обычно вызывается без аргументов (например,ModelMixins).поля.__new__(), который кэширует арги и кварги, но кажется, что никто никогда не читает их позже.

Ответы на вопрос(2)

Ваш ответ на вопрос