Сохранение времени «последней встречи» не работает более нескольких секунд

Основываясь на этом вопросе, я добавил следующее промежуточное ПО для отслеживания даты последнего посещения пользователей:

from datetime import datetime, timedelta
from dateutil.parser import parse

from .models import User

class LastSeenMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        if request.user.is_authenticated:
            last_seen = request.session.get("last-seen")
            now = datetime.now()
            too_old_time = now - timedelta(seconds=60*60)

            if not last_seen or parse(last_seen) < too_old_time:
                User.objects.filter(id=request.user.id).update(last_seen=now)

            request.session["last-seen"] = now.isoformat()

        return self.get_response(request)

Это работает, когда я устанавливаю timedelta только на несколько секунд, но если больше, то поле перестает обновляться. Я упускаю что-то очевидное?

Вернуться на верх