class UserIP(models.Model):
user = models.ForeignKey(User)
ip = models.GenericIPAddressField()
last_seen = models.DateTimeField(auto_now=True)
class Middleware(pass):
def process_response(request, response):
if request.user: # or getattr(request, '_cached_user')
UserIP.objects.create_or_update(user=request.user, ip=request.META['REMOTE_ADDR'])
return response