Django 重定向状态代码错误

标签 django http redirect testing

我正在测试 Django 应用程序。当用户登录时,我将他重定向到图表页面。为了测试,我写了

response = TestCase.client.post('app/login', {credentials}, follow=True)
TestCase.assertRedirects(response, 'app/graphs')

返回

AssertionError: False is not true : 
Response didn't redirect as expected: Response code was 200 (expected 302).

足够合理。 The docs say assertRedirects 有一个 status_code 参数。然后调用

TestCase.assertRedirects(response, 'app/graphs', status_code=200)

返回

AssertionError: False is not true : 
Response didn't redirect as expected: Response code was 200 (expected 200).

这是怎么回事?

最佳答案

status_code 参数是重定向响应的状态。这通常应该是 301(永久重定向)或 302(临时重定向)。

使用 status_code=200 没有意义,因为 200 不是重定向响应。

我同意响应代码是 200(预期为 200)。 看起来有点困惑,但断言错误的关键部分是响应没有按预期重定向 .

由于断言告诉您您没有被重定向,这表明您的登录帖子无效。您可以尝试检查 response.content 以查看问题所在。请注意,您的网址应以斜杠开头(即 /app/login/app/graphs)。

关于Django 重定向状态代码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38594720/

相关文章:

python - Django Form 如果只有一个选项可用,则自动选择第一个选项

python - Django:具有与客户端关联的唯一分机号,但与另一个客户端关联的相同分机号

http - Rust 中基于 SSH 的 TCP 隧道

c# - 路线在 postman 中工作不正确,不允许邮寄

php - 使用 Perl 或 PHP 的 HTTP 多部分响应

Angular主路由配置无效(空路径)

Django Taggit - 标记关联未从自定义管理表单中保存

最大分组的 Django TruncDay 限制

regex - 使用重定向配置重写 HAProxy 和 reqrep 路径

redirect - NGINX 始终重定向到本地主机和端口