Очевидно, начиная с Django 2.1.0, django-hijack (версия 2.1.10), похоже, дает ошибку при использовании с UserPassesTestMixin. Он отлично работает, когда тест пройден; при сбое теста я получаю ошибку 403 Forbidden вместо перенаправления на login_url.
Это ошибка? Если это так, как я могу установить пакет для работы с Django 2.1.0 +?
.
class MyView(UserPassesTestMixin, View):
test_func = lambda self: False
login_url = '/myurl/'
def get(self, request):
return HttpResponse('Hello world')
[25/Jun/2019 13:03:29] "GET /hijack/username/someuser/ HTTP/1.1" 302 0
Forbidden (Permission denied): /myview/
Traceback (most recent call last):
File "C:\Envs\myenv\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\Envs\myenv\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Envs\myenv\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "c:\program files\python36\Lib\contextlib.py", line 52, in inner
return func(*args, **kwds)
File "C:\Envs\myenv\lib\site-packages\django\contrib\auth\decorators.py", line 21, in _wrapped_view
return view_func(request, *args, **kwargs)
File "C:\Envs\myenv\lib\site-packages\django\views\generic\base.py", line 68, in view
return self.dispatch(request, *args, **kwargs)
File "C:\Envs\myenv\lib\site-packages\django\contrib\auth\mixins.py", line 52, in dispatch
return super().dispatch(request, *args, **kwargs)
File "C:\Envs\myenv\lib\site-packages\django\contrib\auth\mixins.py", line 108, in dispatch
return self.handle_no_permission()
File "C:\Envs\myenv\lib\site-packages\django\contrib\auth\mixins.py", line 43, in handle_no_permission
raise PermissionDenied(self.get_permission_denied_message())
django.core.exceptions.PermissionDenied
[25/Jun/2019 13:03:29] "GET /myview/ HTTP/1.1" 403 22