无法分配"&书信电报;位于0x7fb2bc14aa90的django.contrib.auth.models.AnonymousUser对象>&引用;:&引用;Post.由“创建人”创建;必须是一个";“用户”;实例

无法分配"&书信电报;位于0x7fb2bc14aa90的django.contrib.auth.models.AnonymousUser对象>&引用;:&引用;Post.由“创建人”创建;必须是一个";“用户”;实例,django,django-rest-framework,Django,Django Rest Framework,我正试图以登录用户的身份发布帖子,但当我尝试这样做时,会出现以下错误: Cannot assign "<django.contrib.auth.models.AnonymousUser object at 0x7fb2bc14aa90>": "Post.created_by" must be a "User" instance. 意见如下: User = get_user_model() class UserLoginA

我正试图以登录用户的身份发布帖子,但当我尝试这样做时,会出现以下错误:

Cannot assign "<django.contrib.auth.models.AnonymousUser object at 0x7fb2bc14aa90>": "Post.created_by" must be a "User" instance.
意见如下:

User = get_user_model()

class UserLoginAPIView(generics.CreateAPIView):

    permission_classes = (permissions.AllowAny, )
    serializer_class = serializers.UserLoginSerializer

    def post(self, request, *args, **kwargs):
        serializer = UserLoginSerializer(data=request.data, context={'request': request})
        serializer.is_valid(raise_exception=True)
        user = serializer.validated_data['user']
        token, created = Token.objects.get_or_create(user=user)
        return Response({"status": status.HTTP_200_OK, "Token": token.key})

class PostAPIView(generics.ListCreateAPIView):
    """PostViewSet
        Post API will be used to creating new discussion, listing, and replying to a post
    """
    queryset = Post.objects.all()
    serializer_class = PostSerializer
    permission_classes = (permissions.AllowAny,)

    def get_queryset(self):
        """
        """
        return Post.objects.filter(reply_to__isnull=True)

    
    def post(self, request):
        serializer = self.serializer_class(data=request.data)
        if serializer.is_valid(raise_exception=True):
            serializer.save(created_by=request.user)
            return Response(serializer.data, status=status.HTTP_200_OK)

        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

你是怎么提出要求的?Postman?@oluwakayode是的,我在Postman上和API视图中都提出了请求,但都不起作用。您可以尝试在登录时使用Django REST Framework用户界面创建帖子吗?@oluwakayode我有,但我收到的错误与我没有登录时的错误相同。
User = get_user_model()

class UserLoginAPIView(generics.CreateAPIView):

    permission_classes = (permissions.AllowAny, )
    serializer_class = serializers.UserLoginSerializer

    def post(self, request, *args, **kwargs):
        serializer = UserLoginSerializer(data=request.data, context={'request': request})
        serializer.is_valid(raise_exception=True)
        user = serializer.validated_data['user']
        token, created = Token.objects.get_or_create(user=user)
        return Response({"status": status.HTTP_200_OK, "Token": token.key})

class PostAPIView(generics.ListCreateAPIView):
    """PostViewSet
        Post API will be used to creating new discussion, listing, and replying to a post
    """
    queryset = Post.objects.all()
    serializer_class = PostSerializer
    permission_classes = (permissions.AllowAny,)

    def get_queryset(self):
        """
        """
        return Post.objects.filter(reply_to__isnull=True)

    
    def post(self, request):
        serializer = self.serializer_class(data=request.data)
        if serializer.is_valid(raise_exception=True):
            serializer.save(created_by=request.user)
            return Response(serializer.data, status=status.HTTP_200_OK)

        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)