Django admin users timein и timeout пользователя
Здравствуйте, я новичок в Django framework, я просто хочу знать, возможно ли перехватить время входа и выхода пользователя, у меня есть модель, что если сотрудник1 войдет в django-admin, он добавит автоматическую запись и если пользователь нажмет выход, он обновит время выхода. Я хочу, чтобы при каждом входе сотрудника в django admin он добавлял запись и обновлял ее после выхода сотрудника из системы, как при ежедневном учете посещаемости в компании.
class UserLogs(models.Model):
user = models.OneToOneField(User, related_name="profile", on_delete=models.CASCADE)
time_in = models.DateTimeField(default=now)
time_out = models.DateTimeField(null=True, blank=True)
для этого можно использовать сигналы входа и выхода: user_logged_in, user_logged_out и user_login_failed. Документация
Вот пример использования (добавьте их к своим моделям):
@receiver(user_logged_in)
def post_login(sender, request, user, **kwargs):
print(f'User: {user.username} logged in')
user.time_in = datetime.now()
user.save()
Это действует как функция "Watcher", которая срабатывает, когда пользователь входит в систему. Аналогично для выхода из системы.