Как проверить, когда пользователь в последний раз входил в систему?
Я хочу обновить мою модель, если пользователь не входил в систему за день до этого .
@receiver(post_save, sender=user_logged_in)
def user_logged_in_streak(sender, instance, *args, **kwargs):
today: date = timezone.now().date()
if instance.user.last_login != today):
UserStatisticStatus.objects.update(day_streak=0)
else:
pass
```
Создайте условие на основе instance.user.last_login и текущей метки времени - timedelta(1). Используйте python datetime.
Это было решение, экземпляр не будет работать, передайте запрос как аргумент для получения информации о пользователе
@receiver(user_logged_in, sender=User)
def user_logged_in(sender, request, *args, **kwargs):
last_log = request.user.last_login.date()
today: date = timezone.now().date()
class_completed = ClassAttempt.objects.filter(user=request.user,
status='completed', ) \
.order_by('-updated_at') \
.first()
if (last_log == today - timedelta(days=1) and (
class_completed.updated_at.updated_at.date() == today - timedelta(days=1))):
pass
elif (last_log == today - timedelta(days=1) and (
class_completed == None)):
UserStatisticStatus.objects.filter(user=request.user).update(day_streak=0)
elif (last_log != today) and (last_log != today - timedelta(days=1)):
UserStatisticStatus.objects.filter(user=request.user).update(day_streak=0)
else:
pass