找到了一个方法:使用 Middleware的process_request(request)方法 , 该方法在执行view之前执行。
from django.http.response import HttpResponseRedirect
from django.core.urlresolvers import reverse
class AuthRequiredMiddleware(object):
def process_request(self , request):
path = request.path
if 'accounts' in path :
return None
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('login'))
else :
return None
然后在 settings.py 中将我自定义的middleware 添加到 MIDDLEWARE_CLASSES 中 。
'common.middleware.AuthRequiredMiddleware' ,
这样,每次请求发出后,都会判断用户是否登录。