Получение информации, хранящейся в других сессиях, с помощью gae-сессий - PullRequest
1 голос
/ 18 февраля 2011

Я сделал простую систему входа в систему с gae-session , и я хочу показать вошедшему в систему пользователю, сколько пользователей вошло в систему и кто они.

Для подсчета количествалюдей, вошедших в систему, когда я регистрирую пользователя, я немедленно сохраняю сеанс в хранилище данных с помощью save (persist_even_if_using_cookie = True).Затем я использую SessionModel.all (). Count () для получения количества зарегистрированных учетных записей.

У меня проблемы с получением информации о других сеансах.Я не уверен, как это сделать.Я пробовал это:

logged_in = []
for activesession in SessionModel.all():
    logged_in.append(activesession['user'])

Но я получаю эту ошибку:

TypeError: 'SessionModel' object is unsubscriptable

Я также пробовал activesession.get ('user'), но это приводит к другой ошибке:

BadKeyError: Invalid string key user.

Как я могу это сделать?

1 Ответ

2 голосов
/ 18 февраля 2011

Объект Session и SessionModel отделены друг от друга. SessionModel хранит только содержимое сеанса, его нельзя прочитать как объект Session.

У меня такое ощущение, что это плохая идея, и вы должны найти другой способ сохранить / получить список зарегистрированных пользователей. Этот метод может возвращать сеансы с истекшим сроком действия, которые еще не были удалены, и, вероятно, будет очень медленным.

Вы хотите вызвать метод __decode_data. Я думаю, что-то вроде этого будет работать:

for activesession in SessionModel.all():
    data = Session._Session__decode_data(activesession.pdump)
    logged_in.append(data['user'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...