import datetime from django.db import models from django.contrib.auth.models import User from django.contrib.sessions.models import Session class UserActivity(models.Model): user = models.ForeignKey(User,null=True,blank=True,db_index=True) session = models.ForeignKey(Session,db_index=True,null=True,blank=True) date = models.DateTimeField(help_text="Date Request started processing",auto_now_add=True,db_index=True) request_time = models.IntegerField(help_text="Time the request took to process (in microseconds)",null=True, blank=True) request_url = models.CharField(maxlength=800,db_index=True) referer_url = models.URLField(verify_exists=False,db_index=True,blank=True,null=True) client_address = models.IPAddressField(blank=True,null=True) client_host = models.CharField(maxlength=256,blank=True,null=True) browser_info = models.TextField(null=True,blank=True) error = models.TextField(null=True,blank=True) def set_request_time(self): from datetime import datetime self.request_time = (datetime.now()-self.date).microseconds self.save() def __str__(self): return '%s: %s %s - %s - %s' % (self.user,self.date,self.error,self.request_url,self.request_time) class Admin: pass