def form_valid(self, *args, **kwargs):
        # let the processing happen
        print self.object.pk
        created = self.object.pk == None
        rslt = super(AuditedModelFormMixin,self).form_valid(*args,**kwargs)

        # get the object id
        instance = self.object
        info = {
            'instance':instance.__repr__(),
        }

        if not self.request.user.is_anonymous(): 
            info['user_pk']= self.request.user.id
            info['username']= self.request.user.username

        info['updated_fields'] = instance.get_dirty_fields()


        # save the audit
        seria = simplejson.dumps(info, cls=DateTimeAwareJSONEncoder, ensure_ascii=False, indent=4)
        log = AuditLog(content_object=instance, log=seria)
        log.save()

        return rslt
def post_delete_receiver(sender, **kwargs):
    instance = kwargs["instance"]

    info = {"instance": instance.__repr__(), "action": "delete"}

    user = get_request_user()
    if user:
        info["user_pk"] = user.id
        info["username"] = user.username

    seria = simplejson.dumps(info, cls=DateTimeAwareJSONEncoder, ensure_ascii=False, indent=4)
    log = AuditLog(content_object=instance, log=seria)
    log.save()
def post_save_receiver(sender, **kwargs):
    instance = kwargs["instance"]
    print

    info = {"instance": instance.__repr__()}

    user = get_request_user()
    if user:
        info["user_pk"] = user.id
        info["username"] = user.username

    if kwargs["created"]:
        info["action"] = "create"
        info["fields"] = instance.get_dirty_fields()
    else:
        info["action"] = "edit"
        info["updated_fields"] = instance.get_dirty_fields()

    seria = simplejson.dumps(info, cls=DateTimeAwareJSONEncoder, ensure_ascii=False, indent=4)
    log = AuditLog(content_object=instance, log=seria)
    log.save()