views:

84

answers:

2

It looks like Django does not update last_login field in auth_user model when a visitor is authenticated by saved session.

So in this case, how can I implement a similar feature like the "seen" field on very SO user's profile page.

A: 

You could easily do this in MiddleWare.

Peter Rowell
+4  A: 

Supposed that you have last_seen_on and last_activity_ip fields in your custom UserProfile model, here is a simple middleware class that does what you want:

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
shanyu