我正在使用django rest框架开发api,我正在编写一些单元测试来检查关键操作。我在尝试获取请求后尝试读取文件的内容
$('#chk1').change(function(){
$('#comment').text("Question 1:" + "");
});
$('#chk2').change(function(){
$('#comment').text("Question 1:" + "");
});
$('#chk3').change(function(){
$('#comment').text("Question 1:" + "");
});
问题是返回的对象是类型:django.http.response.FileResponse,它继承自StreamingHttpResponse。
我正在尝试迭代streaming_content属性,该属性应该是一个迭代器,但是我不能迭代,没有方法downloaded_file = self.client.get(textfile)
。
我检查了这个对象,得到的是map对象。有关如何从此请求获取内容的任何想法?
修改
解决问题
返回的对象是地图,地图采用函数和可迭代:
https://docs.python.org/3.4/library/functions.html#map
我必须做的是将地图转换为列表,访问列表的第一个元素并从字节转换为字符串。不是很优雅,但它有效。
next()
答案 0 :(得分:3)
以下是从streaming_content
地图中提取内容的方法:
content = downloaded_file.getvalue()
查看getvalue()
方法的代码,我们看到它只是迭代了答案内容:
class StreamingHttpResponse(HttpResponseBase):
...
def getvalue(self):
return b''.join(self.streaming_content)