Django测试始终返回301

Django测试始终返回301,django,unit-testing,testing,redirect,status,Django,Unit Testing,Testing,Redirect,Status,我知道很少有相同的帖子有这个问题,但它们对我没有帮助。我在测试中始终保持301状态: self.client.get('/') 这是: self.client.get('/admin/') 返回: AssertionError: 301 != 200 所有URL将返回301状态。。。帮助的唯一方式是:self.client.get('/',follow=True) 有人知道问题出在哪里吗?301是重定向状态,这意味着您的get请求首先有响应,即301。 Http标头包含要重定向到的url

我知道很少有相同的帖子有这个问题,但它们对我没有帮助。我在测试中始终保持301状态:

self.client.get('/')
这是:

self.client.get('/admin/')
返回:

AssertionError: 301 != 200
所有URL将返回301状态。。。帮助的唯一方式是:
self.client.get('/',follow=True)


有人知道问题出在哪里吗?

301是重定向状态,这意味着您的get请求首先有响应,即301。 Http标头包含要重定向到的url

如果您希望您的请求遵循,则必须传入follow=True,这表示自动触发另一个重定向url请求的方法。 可以有许多重定向


这是断言测试中的常见错误。

根URL是否受登录保护?管理员URL肯定是这样的,因此它将重定向到登录页面,除非您已经登录。如果您已使用
@login\u required
保护根视图,这将解释您看到的内容。

我就是这样解决的:

    def test_index_status_code(self):
        response = self.client.get('/backstage')
        self.assertRedirects(response, '/backstage/', status_code=301, target_status_code=200)

打开浏览器,查看是否是尾随反斜杠导致了此问题。

我遇到了与您描述的相同的错误

我的django代码是:

response = self.client.get('**/admin**')<br>
self.assertEqual(response.status_code, 200)<br>
AssertionError: 301 != 200

不,任何不受登录保护的url,除了courseWorth的管理员url之外,请注意,在我的例子中,这是一个问题,即
self.client.get('/',{},True)
,不是每个人都想用谷歌搜索它为了避免反斜杠问题,我使用了
django.url.reverse
,取而代之的是命名url
self.client.get('**/admin/**')<br>
self.client.get('**/admin**', follow=True)