You cannot access body after reading from request's data stream
如果(1)该请求方法为POST,(2)在中间件中的任一process_request
或中,process_view
并且(3)在视图功能内request.body
被访问,则该请求的POST词典在中间件中访问时,将在请求上触发错误。即使错误的真正原因是(2),也会在(3)上引发错误。
为了解决该错误,你需要检查中间件访问的位置,request.POST
并对其进行修改,以使其不再访问request.POST
。
Django文档说中间件不应该访问request.POST,这是忽略该建议的结果之一。
另请查看有关问题的Django票证,其中包括注释:
[m]点击request.POST的中间件(通常)应视为错误。这意味着该视图将无法设置任何自定义上传处理程序,执行请求正文的自定义解析或在接受文件上传之前强制执行权限检查。