nak*_*nak 5 django-rest-framework
可浏览的django-reset-framework提供了一个方便的"原始数据"选项卡,其中包含一个空-json,可以轻松创建新对象.
我有许多不同的Serializer,每个请求类型(GET/POST)和其他逻辑更改,所以我想测试这个empty-json作为我的单元测试的一部分.
我的问题是:如何基于APIClient请求(drf的测试客户端)以编程方式检索序列化程序?
我在https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/renderers.py#L454上看到了代码,具体来说,
view.get_serializer(instance=obj)
Run Code Online (Sandbox Code Playgroud)
但我仍然无法从APIClient构建一个序列化器.
根据 blck 的建议,我使用 OPTIONS 来接收 json 模式。不幸的是,DRF OPTION 方法有一个问题:它创建一个克隆请求来模拟 PUT/POST 方法,但没有将克隆请求传播到视图。这导致根据 http 方法更改序列化器的视图返回不正确的序列化器。
例如,我的视图使用一个序列化器进行 GET,使用另一个序列化器进行 POST/PUT:
def get_serializer_class(self):
return WriteSerializer if request.method in ['POST', 'PUT'] else ReadSerializer
Run Code Online (Sandbox Code Playgroud)
我在这里提出了拉取请求:http://github.com/tomchristie/django-rest-framework/pull/1507
| 归档时间: |
|
| 查看次数: |
1608 次 |
| 最近记录: |