Я столкнулся с подобной проблемой. Я создал новый nested_route
декоратор, который во многом похож на list_route и detail_route. Я обычно перенаправляю на другой набор просмотра для обработки вложенного пути. Проблема заключалась в том, что поток читался слишком рано (с помощью отправки родительского набора), поэтому мне нужно было убедиться, что функция initialize_request была вызвана только один раз для данного запроса.
Отрабатывая приведенный выше комментарий @ rsalmaso, я переопределил метод initialize_request
в дочерних наборах следующим:
def initialize_request(self, request, *args, **kwargs):
if not isinstance(request, Request):
request = super().initialize_request(request, *args, **kwargs)
return request
Это работает нормально, но я думаю, что есть какой-то атрибут для игнорирования функции initialize_request в диспетчере или для глобальной проверки только для запуска initialize_request iff isinstance(request, rest_framework.request.Request) == False
. Я рад подготовить пиар с тестами, если это приемлемо.