Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django1.10自动注销_Django - Fatal编程技术网

Django1.10自动注销

Django1.10自动注销,django,Django,我使用了如下所示的包含代码,用于5分钟后自动注销。 但我犯了一个错误 File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 82, in load_middleware mw_instance = middleware(handler) TypeError: this constructor takes no arguments 我的代码 在settings.py中 SESSION\u

我使用了如下所示的包含代码,用于5分钟后自动注销。 但我犯了一个错误

File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 82, in load_middleware
mw_instance = middleware(handler)
TypeError: this constructor takes no arguments
我的代码

在settings.py中

SESSION\u SERIALIZER='django.contrib.sessions.serializers.PickleSerializer'

在middleware.py中

from datetime import datetime, timedelta
from django.conf import settings
from django.contrib import auth


class AutoLogout:
  def process_request(self, request):
    if not request.user.is_authenticated() :
      #Can't log out if not logged in
      return

    try:
        if datetime.now() - request.session['last_touch'] > timedelta( 0, settings.AUTO_LOGOUT_DELAY * 60, 0):
            auth.logout(request)
            del request.session['last_touch']
            return
    except KeyError:
        pass

    request.session['last_touch'] = datetime.now()
在settings.py中:

MIDDLEWARE_CLASSES = [
    .........................
    'app_name.middleware.AutoLogout', 
]
自动注销延迟(分钟) 你试过新的吗

大概是这样的:

class AutoLogout(object):
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):

        if not request.user.is_authenticated():
            # Can't log out if not logged in
            return None

        if datetime.now() - request.session['last_touch'] > timedelta( 0, settings.AUTO_LOGOUT_DELAY * 60, 0):
            try:
                auth.logout(request)
                del request.session['last_touch']
            except KeyError:
                pass
            else:
                request.session['last_touch'] = datetime.now()
        return self.get_response(request)
你试过新的吗

大概是这样的:

class AutoLogout(object):
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):

        if not request.user.is_authenticated():
            # Can't log out if not logged in
            return None

        if datetime.now() - request.session['last_touch'] > timedelta( 0, settings.AUTO_LOGOUT_DELAY * 60, 0):
            try:
                auth.logout(request)
                del request.session['last_touch']
            except KeyError:
                pass
            else:
                request.session['last_touch'] = datetime.now()
        return self.get_response(request)

否..我所做的唯一更改是定义调用(self,request,cookies=None):#如果不是request.user.is_authenticated():如果(self.\uu cookies!=None):#如果未登录,则无法注销返回其显示的AttributeError:“AutoLogout”对象没有属性“_AutoLogout_cookies”我已使用cookies进行检查,因为登录时未使用djang.autentication这是因为您正在尝试访问
self.\u cookies
它不存在!这是从哪里来的?当用户登录cookie被设置时..如果cookie存在,用户已经登录inno..我所做的唯一的更改是def u call uu(self,request,cookies=None):#如果不是request.user.is_authenticated():if(self.u cookies!=None):#如果未登录,则无法注销返回其显示的AttributeError:“AutoLogout”对象没有属性“_AutoLogout_cookies”我已使用cookies进行检查,因为登录时未使用djang.autentication这是因为您正在尝试访问
self.\u cookies
它不存在!这是从哪里来的?当用户登录cookie被设置时。因此,如果存在cookie,则用户已经登录