【发布时间】:2012-01-27 17:57:19
【问题描述】:
我在生产服务器上收到以下错误:
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/django/core/handlers/base.py", line 89, in get_response
response = middleware_method(request)
File "myproject/middleware.py", line 31, in process_request
if not any(m.match(path) for m in EXEMPT_URLS):
NameError: global name 'any' is not defined
服务器正在运行 python 2.6,并且在开发中未引发此错误。违规代码在middleware.py:
...
if not request.user.is_authenticated():
path = request.path_info.lstrip('/')
if not any(m.match(path) for m in EXEMPT_URLS):
return HttpResponseRedirect(settings.LOGIN_URL)
我应该重写这个any 函数来解决这个问题吗?
【问题讨论】:
-
从堆栈跟踪中,您的服务器似乎正在运行 Python 2.4,它没有
any。 -
哎呀。哦耶。有什么建议我如何重写代码以与 python2.4 兼容?
-
@Ned 似乎给出了一个很好的答案。尽管如果可能的话,我真的会考虑升级。下一个版本的 Django (1.4) 将不支持 Python 2.4。