Python 创建&;序列化程序中的返回标记

Python 创建&;序列化程序中的返回标记,python,django,Python,Django,当前在我的注册视图中返回令牌时遇到困难 如何修复此问题,以便UserSerializer的create可以返回令牌和用户名 View.py @permission_classes([AllowAny]) class UserCreate(generics.CreateAPIView): queryset = User.objects.all() serializer_class = UserSerializer 序列化程序.py class UserSerializer(ser

当前在我的注册视图中返回令牌时遇到困难

如何修复此问题,以便UserSerializer的create可以返回令牌和用户名

View.py

@permission_classes([AllowAny])
class UserCreate(generics.CreateAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer
序列化程序.py

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('username', 'password')
        extra_kwargs = {'password': {'write_only': True}}

    def create(self, validated_data):
        password = validated_data.pop('password')
        user = User(**validated_data)
        user.set_password(password)
        user.save()
        token, _ = Token.objects.get_or_create(user=user)
        return Response(
            {
                'username': validated_data['username'],
                'token': token.key,
            },
            status=HTTP_200_OK
        )
错误


最终将其放入序列化程序:

class UserCreate(generics.CreateAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer

    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        self.perform_create(serializer)
        token, created = Token.objects.get_or_create(user=serializer.instance)
        return Response({'token': token.key, 'username': serializer.instance.username}, status=HTTP_201_CREATED)```

错误显示数据中缺少
username
。这是我的请求:
httpposthttp://127.0.0.1:8000/account/register username='test37'password='password'
打印(已验证的\u数据)
放入序列化程序中,查看是否包含所有必需的字段。{“username”:“test40”}
class UserCreate(generics.CreateAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer

    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        self.perform_create(serializer)
        token, created = Token.objects.get_or_create(user=serializer.instance)
        return Response({'token': token.key, 'username': serializer.instance.username}, status=HTTP_201_CREATED)```