Django 获得在线用户

来源:互联网 发布:mac 安装rar 命令行 编辑:程序博客网 时间:2024/05/29 05:55

参考:stackoverflow


from django.contrib.auth.models import Userfrom django.contrib.sessions.models import Sessionfrom datetime import datetimedef get_all_logged_in_users():    # 获取没有过期的session    sessions = Session.objects.filter(expire_date__gte=datetime.now())    uid_list = []    # 获取session中的userid    for session in sessions:        data = session.get_decoded()        uid_list.append(data.get('_auth_user_id', None))    # 根据userid查询user    return User.objects.filter(id__in=uid_list)

当SESSION_ENGINE=django.contrib.sessions.backends.db时,以上述代码获得在线的用户

代码并不是很高效,还需继续研究

0 0
原创粉丝点击