与rz的答案一起,你可以查询
Session未到期的会话模型,然后将会话数据转换为用户。一旦知道了,就可以将其转换为模板标记,该标记可以在任何给定页面上呈现列表。
(这都是未经测试的,但希望将接近工作)。
提取所有已登录的用户…
from django.contrib.auth.models import Userfrom django.contrib.sessions.models import Sessionfrom django.utils import timezonedef 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_depred() uid_list.append(data.get('_auth_user_id', None)) # Query all logged in users based on id list return User.objects.filter(id__in=uid_list)使用此功能,你可以制作一个简单的包含模板标签…
from django import templatefrom wherever import get_all_logged_in_usersregister = template.Library()@register.inclusion_tag('templatetags/logged_in_user_list.html')def render_logged_in_user_list(): return { 'users': get_all_logged_in_users() }logging_in_user_list.html{% if users %}<ul > {% for user in users %} <li>{{ user }}</li> {% endfor %}</ul>{% endif %}然后,你可以在主页上随意使用它…
{% load your_library_name %}{% render_logged_in_user_list %}


