Как передать данные сессии бэкенда django-rest-framewor на фронт-энд react?

Я пытаюсь сделать музыкальный контроллер с django backend и react frontend. Они работают на двух разных серверах localhost, 3000 и 8000. Я использую атрибут session_key сессии django, чтобы иметь возможность определить, кто является хозяином (человеком, который создал комнату). Если пользователь, использующий приложение во фронтенде, создает комнату и возвращается, чтобы создать другую комнату до истечения срока действия сессии, пользователь должен попасть в комнату, которую он создал, а не заставлять бэкенд создавать другую комнату. Моя проблема в том, что каждый раз, когда я нажимаю кнопку создания комнаты на frontend через несколько секунд после создания другой комнаты (очевидно, что сессия еще не истекла, поэтому я ожидаю, что меня отведут в предыдущую комнату), метод fetch возвращает новую комнату.

Вот представление в моем views.py, которое обрабатывает этот POST запрос:

class CreateRoomview(APIView):
    # declaring the class we are going to serialize our data with.
    serializer_class = CreateRoomSerializer
    # manually defining the method we will use to handle post data from our frontend

    def post(self, request, format=None):
        '''
        a check to see if in any of our rooms we have a room that that has a host with the
        current session key. We are filtering out all those rooms that have a host with
        the current session key.
        '''
        if not self.request.session.exists(self.request.session.session_key):
            self.request.session.create()
            
        serializer = self.serializer_class(data=request.data)
        # if not Room.objects.filter(host=self.request.session.session_key).exists():
        #     # if the room does not exist, we create a session like that.
        #     self.request.session.create()
        # we serialize our request data
        serializer = self.serializer_class(data=request.data)
        # check to see if the data we have serialized is valid
        if serializer.is_valid():
            # define those three attributes of our model to be those values.
            guest_can_pause = serializer.data.get('guest_can_pause')
            votes_to_skip = serializer.data.get('votes_to_skip')
            host = self.request.session.session_key
            # obtain a queryset with the newly defined host.
            queryset = Room.objects.filter(host=host)
            # if the queryset is not empty,
            if queryset.exists():
                # assign a room to the first entry in the queryset.
                room = queryset[0]

                # assign those room attributes to the values we defined above.
                room.guest_can_pause = guest_can_pause
                room.votes_to_skip = votes_to_skip
                # do not create a new room, but rather,update the values we only
                # only want to change
                room.save(update_fields=['guest_can_pause', 'votes_to_skip'])
            # if the queryset is empty,
            else:
                # create a room with the values specified
                room = Room(host=host, guest_can_pause=guest_can_pause,
                            votes_to_skip=votes_to_skip)
                room.save()

            return Response(RoomSerializer(room).data, status=status.HTTP_201_CREATED)

Вот метод в одном из моих компонентов react frontend, который отправляет POST запрос:

  handleRoomButtonClicked() {
    const requestOptions = {
      method: "POST",

      headers: {
        "Content-Type": "application/json",
      },

      body: JSON.stringify({
        votes_to_skip: this.state.votes_to_skip,
        guest_can_pause: this.state.guest_can_pause,
      }),
    };
    fetch("http://127.0.0.1:8000/api/createroom/", requestOptions)
      .then((response) => response.json())
      .then((data) => console.log(data));
  }

Основная информация Я использую django-cors-headers, чтобы разрешить кросс-запросы, поскольку мой backend и frontend работают на двух разных портах. У меня есть CORS_ALLOW_ALL_ORIGINS = True в моем settings.py. Я пытался найти похожие вопросы на stack, но ни один не помог, я забыл сохранить их ссылки, чтобы я мог прикрепить их к этому вопросу

Вернуться на верх