【问题标题】:Django - Checking database for session variableDjango - 检查数据库中的会话变量
【发布时间】:2018-06-03 22:25:22
【问题描述】:

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

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

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

【问题讨论】:

  • 可以通过expire_date过滤RDB中的会话数据,获取最新的活跃用户

标签: django session login


【解决方案1】:

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

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)

【讨论】:

    猜你喜欢
    • 2020-04-07
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    相关资源
    最近更新 更多