首页 > 解决方案 > 我制作了一个注册 api 并使用它返回未提供身份验证凭据

问题描述

我有这个代码要注册,但是当我注册时返回这个。
{detail: "authentication credentials were not provided"} 这是我的代码,请需要帮助来处理我的整个应用程序

class RegisterApi(GenericAPIView):
    serializer_class = RegisterSerializer
    queryset = User.objects.all()

    def post(self, request, format=None, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        user = serializer.save(request=self.request)
        return Response({
            "user": UserSerializer(user, context=self.get_serializer_context()).data,
            "token": AuthToken.objects.create(user)
        })

这里有两个序列化程序类

# User Serializer


class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ("id", "username", "email")


# Register Serializer

class RegisterSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ("id", "username", "email")
        extra_kwargs = {"password": {"write_only": True}}

    def create(self, data):
        user = User.objects.create(
            data["username"], data["email"]
        )
        user.set_password(data["password"])
        user.save()
        return user

标签: pythondjangoauthenticationdjango-rest-framework

解决方案


创建一个超级用户并登录到管理部分并调用您的 api。我认为这是工作。

Python manage.py Createsuperuser

推荐阅读