好的,所以我对 Django 很陌生,对 Python 也比较陌生。在我正在构建的网站中,我正在使用其他人制作的一些中间件来跟踪使用缓存的“在线”用户。这是我指的中间件 import datetime from django.core.cache import cache from django.conf import settings
class ActiveUserMiddleware:
def process_request(self, request):
current_user = request.user
if request.user.is_authenticated():
now = datetime.datetime.now()
cache.set('seen_%s' % (current_user.username), now,
settings.USER_LASTSEEN_TIMEOUT)
我想把所有的在线用户,然后根据他们是在高中还是大学来划分他们(这是我通过外键给用户一个配置文件的属性),然后从在线用户列表中返回一个随机用户谁满足这些特定要求。我不知道如何做到这一点,因为 django 结构仍然让我感到困惑。我会在视图中还是在模型中实现它?在查看了 active_users 应用程序的代码后,我发现我可以导入 active_users,但我不确定这是一个列表、数组还是对象。另外,我如何确定 online_users 的数量?做类似的事情online_users.length
工作?这是我到目前为止提出的代码:(为简洁起见,我省略了其他一些导入和视图)。对不起,我自己没有想出很多代码,我只是非常卡住/沮丧。任何帮助是极大的赞赏。
from online_status.status import CACHE_USERS
from online_status.utils import encode_json
from django.contrib.auth.models import User
from django.core.cache import cache
from django.template.context import RequestContext
def send_to(request):
sender = request.user
sender_level = sender.username
online_users = cache.get(CACHE_USERS)
match_users=[]
for User in online_users:
if User.username == sender_level:
match_users.append(user)
random_user = choice(match_users)
html = "<html> <body> <p> User: %s % random_user </p></body></html>" % random_user
return render_to_response(html)