python - 如何在 Django 1.9 中显示用户状态(在线、离线)?

标签 python django django-models django-admin

我正在尝试创建一个“社交”网站,您可以在其中添加 friend 、创建帖子等。所以主要问题是,如何使用 Django Admin API 显示用户状态?

提前致谢!

在 html 中:

{{ user.is_authenticated }}

查看中:

def index(request):
    user = User.objects.get(username="root")
    return render(request, 'blog/index.jade', {'users': users})

所以这基本上返回 True 或 False,但这不仅是“root”用户的状态,而是任何人的状态。

最佳答案

每 5 秒发出一次 Ajax 请求,该请求将由 View 处理。并且在每个请求上更新与该用户相对应的表列last_active,这将更新时间戳(您必须创建一个时间戳类型的last_active列)。

每隔 5 秒发出另一个 Ajax 请求,通过比较每个用户对应的当前时间和 last_active 时间戳来获取所有在线用户。它将返回所有在线用户。

您也可以使用此逻辑来制作多用户/单用户聊天系统。

发出 Ajax 请求的代码:

(function getOnline() {

    $.ajax({
        url: '/get_online', 
        type: "GET",
        data:
        {
            user:user
        },
        success: function(data) {
          console.log("success");
        },
        complete: function() {
          // Schedule the next request when the current one is complete
          setTimeout(getOnline, 5000);
        },
        error: function(xhr, errmsg, err) {
                 console.log("error");
        }
    });
})();

关于python - 如何在 Django 1.9 中显示用户状态(在线、离线)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35066497/

相关文章:

python - 如何在 Docker 上运行的 Apache Superset 中为电子邮件报告配置 Celery Worker 和 Beat?

python - 使用每月日期计算累积流失率 - 日期问题很重要

django - 如何更新使用 docker-compose 部署的 django 应用程序?现在似乎运行旧版本的代码

python - 将 Django RawQuerySet 转换为查询集

python - 如何使用特定用户拥有的对象创建 ModelForm

python - Django "NULLS LAST"用于创建索引

python - 如何填充 Pandas 中的重复值?

django - 添加自定义 django 管理 View 的链接

python - “ForeignKey”对象没有属性

python - 如何在 django 1.11 中设置 session 超时