[英]django-login-required middleware giving type error
在我的 django 项目中,我正在尝试使用django-login-required-middleware
。 运行服务器时,我收到以下错误消息:
TypeError at /
'bool' object is not callable
Traceback (most recent call last):
File "/home/krishnan/anaconda3/envs/django_env/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/home/krishnan/anaconda3/envs/django_env/lib/python3.8/site-packages/login_required/middleware.py", line 26, in __call__
is_authenticated = request.user.is_authenticated()
Exception Type: TypeError at /
Exception Value: 'bool' object is not callable
当我 go 到文件site_packages/login_required/middleware.py
的第 26 行时,我看到以下代码:
# Django v2 now has request.user.is_authenticated as a boolean instead
# of a function that returns a boolean
if django.VERSION[0] == 2:
is_authenticated = request.user.is_authenticated
else:
is_authenticated = request.user.is_authenticated()
我正在使用 Django 3.1.6。 我在 2021 年 6 月 4 日按照 pypi 页面中的说明使用 pip 安装了中间件,我认为它是最新版本( middleware.py
文件不显示版本信息)。 根据 pypi 页面,中间件版本为 0.6.1,并且还支持 Django 3.0。 但是从上面的代码片段看来,中间件代码似乎只检查 Django 版本 2 以使用is_authenticated
属性而不是is_authenticated()
function,这可能是错误的原因。 我对么? 或者错误可能是由其他原因引起的?
更新中间件或修复如果将自己设置为 Django 3 将您路由到其他类似 1.11 的 `is_authenticated()' 失败
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.