def save(self, *args, **kwargs): if get_username(): before_value = {} object_class = type(self) # populate created_by and modified_by fields on instance if not getattr(self, "created_by", None): self.created_by = get_username() if hasattr(self, "modified_by"): self.modified_by = get_username() # capture object properties before edit if self.pk: before_value = object_class.objects.get(pk=self.id) if not self.pk: AuditLog.audit_object_add( get_username(), object_class.__name__.lower(), object_class.serialize(self), self.__str__(), debug_info=get_debug_info(), ) else: AuditLog.audit_object_changed( get_username(), object_class.__name__.lower(), object_class.serialize(before_value), object_class.serialize(self), self.__str__(), debug_info=get_debug_info(), ) return super(BaseAuditModel, self).save(*args, **kwargs)
def delete(self, *args, **kwargs): if get_username(): object_class = type(self) AuditLog.audit_object_delete( get_username(), object_class.__name__.lower(), object_class.serialize(self), self.__str__(), debug_info=get_debug_info(), ) return super(BaseAuditModel, self).delete(*args, **kwargs)