password_reset_confirm,sensitive_post_parameters没有收到HttpRequest

时间:2015-07-21 23:10:40

标签: django django-rest-framework django-authentication

我正在使用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)

我不知道我应该做的更多。

感谢。

1 个答案:

答案 0 :(得分:0)

我没有看到代码中使用sensitive_post_parameters的位置,它应该位于password_reset_confirm中的某个位置。

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

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

response = password_reset_confirm(
    request._request,