LolkaФункция должна выполняться в случае если пользователь не залогинен или превышено время обновления сессии, после определения этого факта и перед переадресацией. Проверкой и переадресацией занимается login_required. Как это сделать внешним декоратором?
Внешний декоратор над этим декоратором?
EdВ settings.py. Не годится?
И где этот словарь хранится?
EdНет только в памяти, памяти сколько нужно поставлю, лочить не нужно. Очень нагруженный проект, хотелось бы обращения к диску минимизировать. При перезагрузке,правда, всё пропадет(это поправимо), но вскоре опять заполнится. Показывать нужно при каждом запросе(как в чате), а они идут часто. Нужная информация почти всегда есть под рукой почти в каждом запросе, так зачем еще раз к диску обращаться?
Вообще несколько странно выглядит нежелание юзать базу. Словарь этот будете в файл писать, потом лочить, чтобы не писать из нескольких мест и т.д. и т.п.
EdСпасибо, почитал, очень интересно. Для другого проекта обязательно заюзаю, но для этого много лишнего и мне еще нужны для юзера нестандартные поля, которых там нет.
Если бы мне нужно было что-то подобное, то я бы заюзал уже имеющийся проект, а не изобретал бы велосипед. Вы же не первый которому нужно показать список юзеров ‘на сайте’ :)
Вот этот, например: http://code.google.com/p/django-tracking/
PyCraftНу, я не особый знаток django, но сильно подозреваю, что словарь этот будет доступен только одному процессу питона.
В settings.py. Не годится?
Нет только в памяти, памяти сколько нужно поставлю, лочить не нужно.Дело тут не в памяти, а в доступе. Вы догадываетесь как это все работает на уровне пониже? Ну, скажем, ваш веб-сервер стартует несколько процессов python, они уже работают с django. Клиентские http запросы разделяются между этими питонами.
Очень нагруженный проект, хотелось бы обращения к диску минимизировать.Учитывая то, что django сама будет эту таблицу теребить есть достаточно большая вероятность того, что это будет уже в памяти, то бишь в кэше базы.
и мне еще нужны для юзера нестандартные поля, которых там нет.Все уже придумано за вас, не нужно изобретать велосипед: http://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users