【问题标题】:django rest framework - You cannot access bodydjango rest 框架 - 您无法访问正文
【发布时间】:2017-09-04 07:01:23
【问题描述】:

我正在使用 django 1.8 rest api,如下所示。

@api_view(['GET', 'POST'])
@authentication_classes((TokenAuthentication, SessionAuthentication, BasicAuthentication))
@permission_classes((IsAuthenticated,))
@staff_member_required
def api(request):
    print request.data

问题在于它将所有参数作为字符串检索,因此我必须手动转换数字和布尔值。

我尝试使用:

print json.loads(request.body)

但显然 django rest 框架从导致此错误的数据流中读取:

Error: RawPostDataException: You cannot access body after reading from request's data stream

我也试过

json.loads(request.stream.body)

因为文档说流应该可以工作。

有没有一种方法可以检索具有适当类型的请求发布数据?

请注意,我使用 ajax 通过 JSON.stringify 发送数据。

【问题讨论】:

    标签: django


    【解决方案1】:

    您想在 DRF 中使用 serializers。它们将允许您将模型实例转换为可以转换为 JSON 的本机 Python 数据类型,反之亦然。您还可以反序列化,将这些 JSON 字符串转换为复杂类型。

    阅读有关序列化程序的更多信息here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-17
      • 2019-06-22
      • 2014-10-24
      • 2014-06-29
      • 1970-01-01
      • 2014-09-21
      • 2017-11-16
      • 1970-01-01
      相关资源
      最近更新 更多