我正在尝试将我的应用程序从 Django 1.11 升级到 Django 2.1,虽然我已经能够解决大多数迁移问题,但 API 测试在迁移中停止工作。检查它们后,我看到我收到状态码为 401(未授权)的响应。我从外壳手动尝试,这就是我得到的:
In [46]: from django.test import Client
In [47]: c = Client()
In [48]: user = User.objects.create(username='foobar')
In [49]: user.set_password('foobar')
In [50]: user.save()
In [51]: c.login(username=user.username, password='foobar')
Out[51]: True
In [52]: c.get('/me/')
Unauthorized: /me/
Out[52]: <Response status_code=401, "application/json">
In [53]: c.get('/me/').content
Unauthorized: /me/
Out[53]: b'{"detail":"Authentication credentials were not provided."}'
所以,显然,出于某种原因,我的客户正在登录,但它没有被授权,尽管在 Django 1.11 中它工作正常,没有任何更改。API 和应用程序仍然可以正常工作。有任何想法吗?