Django Auth Token ValueError When Assigning to User

落爺英雄遲暮 提交于 2019-12-12 06:28:39

问题


I'm currently following the Django guide and using the receiver to assign an auth token. However, the following retuens the error

Cannot assign "<User: User object>": "Token.user" must be a "User" instance.

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

class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer

Even replacing the @receiver with does not work

 def perform_create(self, serializer):
    user = serializer.save()
    Token.objects.create(user=user)

回答1:


What do your imports look like? Is there another class User beside django.auth.models.user?

Try to inherit your User class from django.contrib.auth.models.User:

models.py:

from django.contrib import auth

class User(auth.models.User):
    # place for extra fields


来源:https://stackoverflow.com/questions/33683511/django-auth-token-valueerror-when-assigning-to-user

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!