小编Esq*_*lax的帖子

在Django FileResponse上迭代streaming_content属性

我正在使用django rest框架开发api,并且正在编写一些单元测试来检查关键操作。我在尝试执行获取请求后读取文件的内容

downloaded_file = self.client.get(textfile)
Run Code Online (Sandbox Code Playgroud)

问题是返回的对象类型为:django.http.response.FileResponse,它继承自StreamingHttpResponse

我正在尝试遍历streaming_content属性,该属性应该是迭代器,但是我无法进行迭代,没有方法next()

我检查了这个对象,得到的是地图对象。关于如何从此请求中获取内容的任何想法?

编辑:

问题解决了

返回的对象是一个映射,一个映射具有一个函数和一个可迭代的对象:

https://docs.python.org/3.4/library/functions.html#map

我要做的是将地图转换为列表,访问列表的第一个元素,然后从字节转换为字符串。不是很优雅,但可以。

list(response.streaming_content)[0].decode("utf-8")
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

5
推荐指数
1
解决办法
1395
查看次数

标签 统计

django ×1

django-rest-framework ×1

python ×1