Как проверить, когда пользователь в последний раз входил в систему?

Я хочу обновить мою модель, если пользователь не входил в систему за день до этого .


    @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

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