Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查Django Restframework中是否为用户分配了令牌_Python_Django_Django Rest Framework_Http Token Authentication - Fatal编程技术网

Python 检查Django Restframework中是否为用户分配了令牌

Python 检查Django Restframework中是否为用户分配了令牌,python,django,django-rest-framework,http-token-authentication,Python,Django,Django Rest Framework,Http Token Authentication,我正在使用Django Restframework为一个站点设置令牌身份验证,需要让用户下载他们的令牌,但问题是他们只能下载一次令牌(类似于Amazon AWS模型) 换言之;是否有一种本机方法来检查用户是否已在restframework中分配了令牌 您可以这样做: from rest_framework.authtoken.models import Token from django.conf import settings token = Token.objects.create(user

我正在使用Django Restframework为一个站点设置令牌身份验证,需要让用户下载他们的令牌,但问题是他们只能下载一次令牌(类似于Amazon AWS模型)

换言之;是否有一种本机方法来检查用户是否已在restframework中分配了令牌

您可以这样做:

from rest_framework.authtoken.models import Token
from django.conf import settings
token = Token.objects.create(user=settings.AUTH_USER_MODEL)
现在,您只需检查给定用户是否有令牌:

user_with_token = Token.objects.get(user=user)
is_tokened = Token.objects.filter(user=user).exist()  # Returns a boolean
如果您只想查看用户是否有令牌:

user_with_token = Token.objects.get(user=user)
is_tokened = Token.objects.filter(user=user).exist()  # Returns a boolean
如果条目存在,则表示用户已为其分配了令牌。 参考:


按照那里的文档进行操作,以确保数据库已迁移。

尝试使用django信号自动创建用户令牌,类似于模型文件中的内容

@receiver(post_save, sender=User)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
    Token.objects.create(user=instance)

到目前为止,您尝试了什么?我尝试了浏览文档,以查看除了create和get_或_create之外,是否还有其他Token.object函数,但找不到任何东西。源头潜水也没有给我任何东西。我的目标是避免对失败的令牌授权使用try-catch块,而采用本机解决方案(try-catch块方法可能存在太多问题);从rest_framework.authtoken.models导入令牌;从django.conf导入设置#我已经创建了一个在DjangoWebAdmin中没有令牌的用户测试;u=User.objects.get(username='test');user_token=token.objects.get(user=u);<这将返回一个DoesNotExist错误,我试图从本质上捕获它