【发布时间】:2019-05-08 06:41:57
【问题描述】:
我正在处理我的第一个 Django 项目。我正在尝试创建一个通过发布请求接受令牌并在 public_authtoken_token 表中查询相关用户 ID 的 api。
我使用的 dbms 是 PostgreSQL 10.6。 Django 版本是 2.1.1,DRF 是 3.8.2
这是我的“查看”代码:
from rest_framework.authtoken.models import Token
from rest_framework.views import APIView
class MyView(APIView):
def post(self, request, format=None):
my_token = request.META.get('HTTP_AUTHORIZATION')
user_id = Token.objects.get(key=my_token).user_id
return Response(status=status.HTTP_200_OK)
我的问题是当我这样做时遇到以下异常
user_id = Token.objects.get(key=http_token).user_id:
rest_framework.authtoken.models.Token.DoesNotExist: Token matching query does not exist.
现在,我已经验证了我用来测试它的令牌在数据库中,并且它们具有有效的 user_id。此外,我验证了我从 HTTP 请求中读取的令牌也是正确的。 我做错了吗?
【问题讨论】:
-
使用
request.META.get('HTTP_AUTHORIZATION'),您可能会得到一个字符串,例如Token YoUrToKeN。您需要拆分此字符串并提取令牌。
标签: django python-3.x postgresql django-rest-framework