Итак, я очень новичок в Django и относительно новичок в Python. На веб-сайте, который я создаю, я использую некоторое промежуточное программное обеспечение, которое кто-то еще сделал, чтобы отслеживать «онлайн» пользователей, используя кеш, чтобы сделать это. Вот промежуточное я имею в виду импорта DateTime из django.core.cache кэша импорта из django.conf параметров импортаНе знаете, как и где манипулировать объектами Django
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.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)
Как я могу извлечь список онлайн-пользователей из CACHE_USERS? Не является ли список пользователей онлайн-пользователей CACHE_USERS? Я обновил то, что теперь выглядит в моем представлении, но я получаю сообщение об ошибке. Объект «OnlineStatus» не имеет атрибута «имя пользователя». –
Nevermind Я понял это. –
Хорошо, в то же время я сделал тоже, поэтому для полноты: 'для статуса в online_users: if status.user.username == ...' – deufeufeu