Django rest framework, как перенаправить на другой набор представлений как пост запрос

У меня есть два набора представлений: UserViewSet и GoogleViewSet.

В GoogleViewSet я хочу проверить токен и затем перенаправить в UserViewSet.

class GoogleViewSet(APIView):

    def post(self, request):
        # some logic
        password = User.objects.make_random_password()
        return redirect(reverse('v1_users:user_create'),
                        kwargs={'email': 'test@test.com', 'username': 'test', 'password': password})

Но при перенаправлении я получил 405 ошибку

{
    "detail": "Method \"GET\" not allowed."
}

Как перенаправить пост-запрос?

Для этого вам нужен код состояния 307. Обычный редирект даст вам 302, если только это не постоянный редирект, в этом случае это 301. Оба преобразуют запрос в GET.

307 похож на 302, но сохраняет метод и тело запроса.

Вы можете подклассифицировать HttpResponseRedirectBase следующим образом:

class HttpResponseTemporaryRedirect(HttpResponseRedirectBase):
    status_code = 307

и использовать этот класс ответа в представлении

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