#django
#django
Вопрос:
У меня есть промежуточное программное обеспечение Django для обработки запроса POST.
class MyMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, req):
response = self.get_response(req)
# want to do something with 'r.body',
# but it is not able to be read
return response
Поскольку тело запроса уже прочитано get_response
, я не могу прочитать его снова в промежуточном программном обеспечении.
Пробовал copy.copy()
, но безуспешно, поскольку скопированный поток ссылается на тот же объект, что и исходный. copy.deepcopy()
вызывает исключение.
Как я могу обрабатывать данные POST в промежуточном программном обеспечении?
Я хочу обрабатывать все запросы, поэтому реализация логики в каждом представлении не идеальна.
Комментарии:
1.
req.body
илиreq.POST
?
Ответ №1:
Найдено решение
class MyMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, req):
req.body # just add this line BEFORE get_response
response = self.get_response(req)
return response
Комментарии:
1. Это не работает для меня.