我有一个自定义中间件,每个请求都会调用两次,但我不明白为什么。这是我的中间件:
class MyMiddleWare(object):
def process_request(self, request):
print 'FOO'
return None
这是我的中间件设置:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'MyMiddleware',
)
这是主页请求后控制台中的输出:
[28/Jun/2013 19:48:26] FOO
[28/Jun/2013 19:48:26] "GET / HTTP/1.1" 200 7468
[28/Jun/2013 19:48:27] FOO
我试图注释掉所有其他中间件,问题是一样的。我应该怎么办?
ps:所描述的行为在每个视图中都是可复制的
更新:
我试图实现process_view
而不是process_request
按预期调用一次......为什么?
更新 2:
process_response
被称为两次process_request
日期 3:
哦,该死!这是对 favicon.ico 的请求(我自己还没有定义)......谁在调用这个文件?