ValueError: Невозможно назначить "'auth.User'": "Token.user" - PullRequest
1 голос
/ 25 апреля 2020

Я получаю ошибку при создании токена с идентификатором пользователя. это показывает мне ошибку ValueError: Невозможно назначить "'auth.User'": "Token.user" должен быть экземпляром "User". было бы здорово, если бы кто-нибудь мог выяснить, где я должен внести изменения в моем коде. Огромное спасибо заранее. views.py


from rest_framework.authtoken.models import Token

class Product_CategoryCreateAPIView(generics.CreateAPIView):
    # token = Token.objects.get_or_create(user=settings.AUTH_USER_MODEL)
    token = Token.objects.create(user=settings.AUTH_USER_MODEL)
    print(token.key)
    model = Product_Category
    queryset = Product_Category.objects.all()
    serializer_class = Product_CategoryAdd_Serializer

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

вы должны передать экземпляр пользователя

from rest_framework.authtoken.models import Token
from django.contrib.auth import get_user_model 

user = get_user_model().objects.first()
token = Token.objects.create(user=user)

Если вы уже создали несколько пользователей, вы можете сгенерировать токены для всех существующих пользователей, например:

for user in User.objects.all():
    Token.objects.get_or_create(user=user)

см. сделать c

0 голосов
/ 25 апреля 2020

Ошибка говорит, что это должен быть пользовательский экземпляр. Это означает, что вы должны передать объект модели пользователя

Error Logi c:

, который вы в данный момент проходите Имя модели пользователя для Токена

   token = Token.objects.create(user=settings.AUTH_USER_MODEL)

настройки. AUTH_USER_MODEL вернет имя модели пользователя, но не ее экземпляр, оно имеет тип строка, вы можете увидеть ее тип, используя

print(type(settings.AUTH_USER_MODEL))

Вывод : <class 'str'>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...