我如何将更新的请求从 1 api 发送到另一个 api

How can i send updated request from 1 api to another api

我打电话给 update_profile api return Response(self.profile(request).data) 假设 tp 提供更新的用户资料。但问题是它没有实时提供输出。如果我更改名称,它不会反映在单个 api 命中中。更改反映在第二次 api 中。因为相同的 request 被传递给配置文件 api。那么我如何更新请求然后将其发送到 self.profile

这是我的代码:

@action(detail=False, methods=['get'], authentication_classes=(JWTAuthentication, SessionAuthentication))
def profile(self, request):
    user = self.get_user()
    if not user:
        raise AuthenticationFailed()
    return Response(
        {"status": 200, "message": "Success", "data": UserSerializer(user, context={"request": self.request}).data},
        status=status.HTTP_200_OK)


@action(detail=False, methods=['post'], authentication_classes=(JWTAuthentication, SessionAuthentication))
def update_profile(self, request):

    profile_serialize = ProfileSerializer(data=request.data)
    profile_serialize.is_valid(raise_exception=True)

    AppUser.objects.filter(pk=self.get_user().pk).update(**profile_serialize.data)

    return Response(self.profile(request).data)

您可以执行类似的操作来获取更新后的用户。

@action(detail=False, methods=['get'], authentication_classes=(JWTAuthentication, SessionAuthentication))
def profile(self, request):
    user = self.get_user()
    if not user:
        raise AuthenticationFailed()
    else:
        user = AppUser.objects.get(pk=self.get_user().pk)
    return Response(
        {"status": 200, "message": "Success", "data": UserSerializer(user).data},
        status=status.HTTP_200_OK)


@action(detail=False, methods=['post'], authentication_classes=(JWTAuthentication, SessionAuthentication))
def update_profile(self, request):

    profile_serialize = ProfileSerializer(data=request.data)
    profile_serialize.is_valid(raise_exception=True)

    AppUser.objects.filter(pk=self.get_user().pk).update(**profile_serialize.data)

    return Response(self.profile(request).data)