Сохранение данных с сигналом выхода пользователя из системы

Я использую сигнал выхода из системы для сохранения времени выхода пользователя следующим образом

class StaffLogData(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='staff_log_data', on_delete=models.CASCADE)
    log_in_time = models.DateTimeField(verbose_name='Log In Time', blank=True, null=True)
    log_out_time = models.DateTimeField(verbose_name='Log Out Time', blank=True, null=True)
    active_time = models.DateTimeField(verbose_name='Active Time', blank=True, null=True)
    active_log_time = models.TimeField(verbose_name='Active Log Time', blank=True, null=True)
    timestamp = models.DateTimeField(verbose_name='Timestamp', default=timezone.now)


    def duration(self):
        if self.log_out_time:
            return self.log_out_time.replace(microsecond=0) - self.log_in_time.replace(microsecond=0)
        else:
            return None



def staff_log_in_data(sender, user, **kwargs):
    if user:
        StaffLogData.objects.create(user=user, log_in_time=timezone.now())


user_logged_in.connect(staff_log_in_data)


def staff_log_out_data(sender, user, **kwargs):
    last_log_data = StaffLogData.objects.filter(user=user).last()
    if last_log_data:
        last_log_data.log_out_time = timezone.now()
        print('last logout', last_log_data.log_out_time)
        last_log_data.save()


user_logged_out.connect(staff_log_out_data)

Печатает вывод, но не сохраняет его, любая помощь будет оценена по достоинству.

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