4 Stimmen

Wie kann man feststellen, ob ein Django-Benutzer schon einmal eingeloggt war?

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X