password_reset_confirm、sensitive_post_parameters 没有收到 HttpRequest

password_reset_confirm, sensitive_post_parameters didn't receive an HttpRequest

我正在使用 DRF

编写密码重置功能

一切正常,但出现此错误:

Django Version: 1.8.3
Exception Type: AssertionError
Exception Value:    
sensitive_post_parameters didn't receive an HttpRequest. If you are decorating a classmethod, be sure to use @method_decorator.

这是代码启动错误:

class RecoveryPasswordConfirm(APIView):
    """
    API endpoint for recovery password
    """
    serializer_class = UpdatePasswordUserSelializer
    permission_classes = (AllowAny, )

    def post(self, request, uidb64=None, token=None):
        response = password_reset_confirm(
            request,
            template_name='',
            uidb64=uidb64,
            token=token,
            post_reset_redirect=reverse('password_reset_done'))

        return Response({}, status=status.HTTP_200_OK)

我不知道我应该做更多。

谢谢。

我没看到你代码中哪里用到了 sensitive_post_parameters,它应该在 password_reset_confirm.

的某个地方

最有可能的问题是因为 DRF 使用它自己的请求 class 包装了 django 期望的原始 HttpRequest。 参见 more details here

尝试使用request._request传递原始django请求。

response = password_reset_confirm(
    request._request,