0

わかりましたので、私は Django に非常に慣れておらず、Python にも比較的慣れていません。私が構築しているWebサイトでは、キャッシュを使用して「オンライン」ユーザーを追跡するために他の誰かが作成したミドルウェアを使用しています。これが私が言及しているミドルウェアです django.core.cache から日時をインポートします django.conf からキャッシュをインポートします インポート設定

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)

すべてのオンライン ユーザーを取得し、高校または大学のどちらにいるかに基づいて分割し (これは、プロファイルへの外部キーを介してユーザーに与えた属性です)、オンライン ユーザーのリストからランダムなユーザーを返します。それらの特定の要件を満たす人。ジャンゴの構造がまだ私を混乱させているので、私はこれを行う方法に途方に暮れています。これをビューまたはモデルに実装しますか? 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)
4

1 に答える 1