Wir haben ein Django-Projekt, bei dem ein Benutzerkonto für eine Person erstellt wird, wenn sie uns anruft. Die Person kann, muss aber nicht, zu einem späteren Zeitpunkt ihr Konto verwenden, um sich auf unserer Website anzumelden.
Frage: Wie kann ich feststellen, ob ein Benutzer immer auf unserer Website eingeloggt?
Klarstellung: Ich möchte die obige Frage für Hunderte von bestehenden Nutzern beantworten, nicht nur für neue Nutzer, die ab diesem Zeitpunkt angelegt werden.
Gedanke 1: Siehe User.last_login
. Leider initialisiert Django last_login
zu datetime.datetime.now()
wenn der Benutzer erstellt wird, unabhängig davon, ob er sich jemals angemeldet hat.
Gedanke 2: Prüfen Sie, ob User.last_login
passt zu User.date_joined
. Leider initialisiert Django beide diese Felder zu datetime.now()
und sie können einige Mikrosekunden voneinander entfernt sein:
In [1]: u = User.objects.create(username="bla")
In [2]: u.date_joined - u.last_login
Out[2]: datetime.timedelta(0, 0, 23)
Derzeit benutze ich einen Hack: Angenommen, der Benutzer hat sich mindestens einmal angemeldet wenn user.last_login - user.date_joined >= datetime.timedelta(seconds=1)
.
Gibt es eine bessere Methode, um festzustellen, ob sich ein Benutzer jemals angemeldet hat?