python runtime_error ai_generated true

请求数据错误:在读取请求数据流后无法访问 body

django.http.request.RawPostDataException: You cannot access body after reading from request's data stream

ID: python/django-request-data-error

其他格式: JSON · Markdown 中文 · English
80%修复率
82%置信度
0证据数
2025-06-20首次发现

版本兼容性

版本状态引入弃用备注
3.2 active
4.0 active
5.0 active

根因分析

Django 请求对象不允许重复读取 body 数据

English

多次尝试读取请求体,但请求体只能读取一次

generic

解决方案

  1. 95% 成功率 一次性读取并缓存
    data = request.body; 之后使用 data 变量
  2. 90% 成功率 使用中间件缓存请求体
    使用 django.utils.datastructures.MultiValueDictKeyError 处理

无效尝试

常见但无效的做法:

  1. 尝试重新读取 request.body 100% 失败

    请求体流已消耗,无法再次读取

  2. 使用 request.POST 代替 60% 失败

    如果请求是 JSON,request.POST 可能为空