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