【发布时间】:2019-06-02 09:23:52
【问题描述】:
我有 Django 视图,它返回内容类型为“application/json”的 HTTPResponse。在我的测试中,我想验证是否设置了预期的内容类型。
从docs,我看到一个HTTPResponse 我可以传递的content_type 有一个参数,把它作为一个属性没有得到。这是为什么呢?
在我的 views.py 中,我构建并发送一个 HTTPResponse,如下所示:
j = json.dumps(j)
return HttpResponse(j, content_type='application/json')
在我的tests.py 中,我想做类似的事情
self.assertEqual(response.content_type, 'application/json')
但是如果没有 HTTPResponse 对象的属性,那当然会失败,AttributeError: 'HttpResponse' object has no attribute 'content_type'
如何在 Django 中获取响应的内容类型?对 HTTP 的工作方式有误解吗?
【问题讨论】:
-
运行
print(dir(response))看看有没有content_type属性 -
感谢您的提示!我不知道这种可能性,查看所有属性帮助我解决了问题!
标签: django testing content-type