Сохранение времени «последней встречи» не работает более нескольких секунд
Основываясь на этом вопросе, я добавил следующее промежуточное ПО для отслеживания даты последнего посещения пользователей:
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
только на несколько секунд, но если больше, то поле перестает обновляться. Я упускаю что-то очевидное?