def METHOD_NAME(self, obj, agent, parent_record=None):
    log_obj = self._log(auditcodes.REMOVE, obj, agent, parent_record)
    if log_obj is not None:
        for spfld in obj.specify_model.fields:
            fldattr = spfld.name.lower()
            if fldattr != 'version' and hasattr(obj, fldattr):
                val = getattr(obj, fldattr)
                if val is not None:
                    self._log_fld_update({'field_name': fldattr, 'old_value': val, 'new_value': None}, log_obj, agent)
        for spfld in obj.specify_model.relationships:
            if spfld.type.lower().endswith("many-to-one"):
                fldattr = spfld.name.lower()
                if hasattr(obj, fldattr):
                    val = getattr(obj, fldattr)
                    field = obj._meta.get_field(fldattr);
                    if isinstance(val, field.related_model):
                        self._log_fld_update({'field_name': fldattr, 'old_value': val.id, 'new_value': None}, log_obj, agent)
                    elif isinstance(val, str) and not val.endswith('.None'):
                        fk_model, fk_id = parse_uri(val)
                        if fk_model == field.related_model.__name__.lower() and  fk_id is not None:
                            self._log_fld_update({'field_name': fldattr, 'old_value': fk_id, 'new_value': None}, log_obj, agent)
    return log_obj