相关疑难解决方法(0)

django-rest-framework http在django 1.5上以415失败

我正在使用REST API的django-rest-framework(最新版),并使用内置的测试客户端在django中实现了很少的测试用例.

以下django测试用例与django版本<1.5一起工作正常

self.client.put('/core/accounts/%s/'% self.account.id,
        data = prepare_dict(self.account),
        HTTP_AUTHORIZATION=self.token)
Run Code Online (Sandbox Code Playgroud)

升级到django 1.5,除了与HTTP PUT相关的测试外,所有测试都在通过, 同时调查发现的问题@ https://docs.djangoproject.com/en/dev/releases/1.5/#options-put-and-delete-请求合的测试客户端

如果在没有content_type的PUT请求中使用data参数,则必须先对数据进行编码,然后再将其传递给测试客户端并设置content_type参数.

因此,更新了我的测试以反映此更改并尝试了以下,但仍然获得http 415而不是http 200

from django.test.client import MULTIPART_CONTENT, BOUNDARY, encode_multipart
self.client.put('/core/accounts/%s/'% self.account.id,
            data = encode_multipart(BOUNDARY, prepare_dict(self.account)),
                content_type=MULTIPART_CONTENT,
        HTTP_AUTHORIZATION=self.token)
Run Code Online (Sandbox Code Playgroud)

知道我错过了什么吗?PS:django-rest-framework内置Web UI的所有功能都运行良好

django django-rest-framework

32
推荐指数
2
解决办法
1万
查看次数

标签 统计

django ×1

django-rest-framework ×1