Python 如何在Django中保存API中的数据?

Python 如何在Django中保存API中的数据?,python,django,django-rest-framework,Python,Django,Django Rest Framework,我与用户有评论模型关系 喜欢这个型号 class Comment(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) comment = models.CharField() type = models.CharField() point = models.CharField() 序列化程序 class CommentSerializer(serializers.M

我与用户有评论模型关系

喜欢这个型号

class Comment(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    comment = models.CharField()
    type = models.CharField()
    point = models.CharField()
序列化程序

class CommentSerializer(serializers.ModelSerializer):
    class Meta:
        model = Card
        fields = ['comment', 'type', 'point']
从这里我已经得到了API响应,保存在注释模型中

def save_response_data(data):
    # here validate...
    json_data = {}
    # I want the user instance that is making the request
    serializer = CommentSerializer(data=json_data)

    if serializer.is_valid():
      serializer.save()

    return json_data
视图请求api

class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    ...
    ...

    def post(self, request):
        serializer = self.serializer_class(data=request.data)
        serializer.is_valid(raise_exception=True)
        serializer.save()

        return Response(serializer.data, status=...)
    
    # Overwrite create method
    def create(self, request, *args, **kwargs):
        super(UserViewSet, self).create(request, args, kwargs)
        
        # Currently, this is how I am obtaining the user who makes the request
        user_id = request.user.id
        # Simple queryset build payload to send api
        payload = build_payload(user_id)

        response = requests.post(url, data=payload) 

        data = response.json()

        save_response_data(data)
我想要发出请求的用户实例


我试着用信号来做这件事,但它不起作用,没有任何想法或评论,这将很有帮助

嗨,我使用APIView,我可以访问auth user

class UserView(APIView):
    permission_classes = (IsAuthenticated)
    authentication_classes = (TokenAuthentication,)

    def post(self, request):
        user = request.user
        ...
        request.data['user']=user
        CommentSerializer(request.data)

你能分享捕获请求的视图的代码吗?@HuLuViCa我编辑了这个问题