我是使用Django Rest Framework的新手。我继承了一个 Django 项目,它有 2 个用户模型:mods.User
绑定到 AUTH_USER_MODEL
和 players.Member
。
由于我无法在这里讨论的原因,它们都继承自AbstractBaseUser
但涉及不同的信息,它们之间只有一个共同的email
字段。
我正在尝试为players.Member
中的用户使用令牌身份验证。我创建了一个端点/players_endpoint/register
,它成功地将玩家添加到数据库中。但是,将播放器添加到数据库后,json 响应会返回Cannot assign "<Member: offworld_321>": "Token.user" must be a "User" instance.
我的创建视图如下:
class MemberCreateView(generics.CreateAPIView):
queryset = Member.objects.all()
def post(self, request, format='json'):
serializer = MemberCreateSerializer(data=request.data)
if serializer.is_valid():
user = serializer.save()
if user:
token = Token.objects.create(user=user)
json = serializer.data
json['token'] = token.key
return Response(json, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
我正在按照这里的教程进行操作
我怎样才能使玩家在注册时收到一个用于身份验证的令牌?
我遇到了同样的问题,并使用以下方法解决了它:
user=user.get()