Django - 检查数据库的会话变量

时间:2018-06-03 07:32:32

标签: django session login

这里有点新的Djangoer。一个(希望)快速的问题。

是否有可能检查另一个用户此时是否处于活动状态?我的网站没有传统意义上的登录;没有身份验证。为用户分配随机生成的用户名,在网站上存储在他们的会话中,并且可以使用该用户名与网站进行交互。我希望其他用户能够查看这些交互,并检查创建这些交互的用户是否仍处于活动状态或处于脱机状态(他们的会话已结束)。

在另一个相关说明中,不同的页面具有保存为IP地址的管理员。是否可以检查特定IP是否在线?

1 个答案:

答案 0 :(得分:0)

这个网站有一个非常方便的解决方案,只需稍作修改即可:

https://www.codingforentrepreneurs.com/blog/django-tutorial-get-list-of-current-users/

def get_current_users():
    active_sessions = Session.objects.filter(expire_date__gte=timezone.now())
    user_id_list = []
    for session in active_sessions:
        data = session.get_decoded()
        user_id_list.append(data.get('_auth_user_id', None))
    # Query all logged in users based on id list
    return User.objects.filter(id__in=user_id_list)