2010-03-13 6 views
5

Il semble que Django ne mette pas à jour le champ last_login dans le modèle auth_user lorsqu'un visiteur est authentifié par une session enregistrée.Attribut Django "last_login" dans le modèle auth_user

Donc, dans ce cas, comment puis-je implémenter une fonctionnalité similaire comme le champ "vu" sur la page de profil de chaque utilisateur SO.

Répondre

10

Supposé que vous avez des champs last_seen_on et last_activity_ip dans votre modèle UserProfile personnalisé, voici une simple classe middleware qui fait ce que vous voulez:

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