Сохранение данных с сигналом выхода пользователя из системы
Я использую сигнал выхода из системы для сохранения времени выхода пользователя следующим образом
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)
Печатает вывод, но не сохраняет его, любая помощь будет оценена по достоинству.