Django Rest Framework 令牌不会自动生成
Django Rest Framework Tokens Are Not Being Automatically Generated
我正在(尝试)使用 Django Rest Framework 的基于令牌的身份验证。我的应用程序 models.py
中包含以下内容
from django.db.models.signals import post_save
from django.dispatch import receiver
from rest_framework.authtoken.models import Token
from django.conf import settings
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
Token.objects.create(user=instance)
每当我创建一个新帐户(通过 'createsuperuser' 或使用我的注册表格)时,用户都会正确添加到 'auth_user' table。但是,尽管创建了 'authtoken_token' table,但没有添加任何内容。这让我相信我的@reciever 可能无法正常工作。
不过,我可以使用 Django shell 手动创建令牌。这些令牌将正确添加到 authtoken_token table.
如有任何帮助,我们将不胜感激,
谢谢
要检查的事项:
- 接收者是否运行?里面加个print或者log,检查是不是第一时间调用的
- 如果未定义
AUTH_USER_MODEL
,您可能需要使用 get_user_model()
代替
- 确保此代码位于
settings.INSTALLED_APPS
中应用程序的 models.py
文件中
我已经使用 DRF 好几年了,从来没有遇到过这个问题。以上之一可能是你的罪魁祸首。
我正在(尝试)使用 Django Rest Framework 的基于令牌的身份验证。我的应用程序 models.py
中包含以下内容from django.db.models.signals import post_save
from django.dispatch import receiver
from rest_framework.authtoken.models import Token
from django.conf import settings
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
Token.objects.create(user=instance)
每当我创建一个新帐户(通过 'createsuperuser' 或使用我的注册表格)时,用户都会正确添加到 'auth_user' table。但是,尽管创建了 'authtoken_token' table,但没有添加任何内容。这让我相信我的@reciever 可能无法正常工作。
不过,我可以使用 Django shell 手动创建令牌。这些令牌将正确添加到 authtoken_token table.
如有任何帮助,我们将不胜感激,
谢谢
要检查的事项:
- 接收者是否运行?里面加个print或者log,检查是不是第一时间调用的
- 如果未定义
AUTH_USER_MODEL
,您可能需要使用get_user_model()
代替 - 确保此代码位于
settings.INSTALLED_APPS
中应用程序的
models.py
文件中
我已经使用 DRF 好几年了,从来没有遇到过这个问题。以上之一可能是你的罪魁祸首。