2010-03-13 5 views
5

Es sieht so aus, als ob Django das last_login-Feld im auth_user-Modell nicht aktualisiert, wenn ein Besucher von einer gespeicherten Sitzung authentifiziert wird.Django-Attribut "last_login" in auth_user-Modell

In diesem Fall, wie kann ich eine ähnliche Funktion wie das Feld "Gesehen" auf der Profilseite jedes SO-Benutzers implementieren.

Antwort

10

Vermeintliche dass Sie last_seen_on und last_activity_ip Felder in Ihrem benutzerdefinierten Userprofile Modell haben, hier ist eine einfache Middleware-Klasse das macht, was Sie wollen:

import datetime 

class LastSeen(object): 

    def process_request(self, request): 
     user = request.user 
     if not user.is_authenticated(): return None 
     up = user.get_profile() 
     up.last_seen_on = datetime.now() 
     up.last_activity_ip = request.META['REMOTE_ADDR'] 
     up.save() 
     return None 
Verwandte Themen