Ответ 1
В профиле пользователя (или пользовательской модели пользователя) должно быть поле last_activity
. Это поле будет обновляться по каждому запросу. Чтобы достичь этого, вам нужно иметь специальное промежуточное программное обеспечение:
профили/middleware.py:
from django.utils import timezone
from myproject.profiles.models import Profile
class UpdateLastActivityMiddleware(object):
def process_view(self, request, view_func, view_args, view_kwargs):
assert hasattr(request, 'user'), 'The UpdateLastActivityMiddleware requires authentication middleware to be installed.'
if request.user.is_authenticated():
Profile.objects.filter(user__id=request.user.id) \
.update(last_activity=timezone.now())
Добавьте это промежуточное программное обеспечение в файл настроек:
MIDDLEWARE_CLASSES = (
# other middlewares
'myproject.profiles.middleware.UpdateLastActivityMiddleware',
)