【发布时间】:2019-11-23 06:48:29
【问题描述】:
我正在使用 Python(2.7) 和 Django(1.11) 开发一个项目,在该项目中我只需要显示特定功能的登录用户。
我已经通过settings.py中的以下设置实现了注销用户:
SESSION_COOKIE_AGE = 180
SESSION_SAVE_EVERY_REQUEST = True
LOGOUT_REDIRECT_URL = 'login'
我需要获得driver 类型的活跃用户,我得到的是:
def get_all_logged_in_users():
# Query all non-expired sessions
# use timezone.now() instead of datetime.now() in latest versions of Django
sessions = Session.objects.filter(expire_date__gte=timezone.now())
uid_list = []
# Build a list of user ids from that query
for session in sessions:
data = session.get_decoded()
print(data)
uid_list.append(data.get('user_id', None))
# Query all logged in users based on id list
return user_table.objects.filter(id__in=uid_list, user_type='driver')
几天前它还在工作,但突然停止工作了。当我在SESSION_COOKIE_AGE 传递时间后刷新页面时,它被重定向到完美的登录页面,但在数据库中,该用户的is_active 仍然是True,它仍然显示在get_all_logged_in_users 中。
我该如何解决这个问题?
【问题讨论】:
标签: python django python-2.7 django-sessions django-1.11