Yes, so you want to pas by a transitionnal form with the data preset base on the copied record values, where you can make the change you want before submit the form. So if you have a grid where you can select the record to copy with the icon you want that link to the transitionnal form, you just have to pass the value of the record to the form throught out URL vars... You can iter like that :
SQLFORM.grid(..., links=[dict(header='', body=lambda row: A(I(_class='icon some_icon'), _href=URL('transitionnal_form', vars={f: row[f] for f in db.table.fields}))))],)
This part :
{f: row[f] for f in db.table.fields}
Is a dict comprehension...
Then in transitionnal form controller you do something like that :
def transition_form():
for f, v in request.vars:
db.table[f].default = v
form = SQLFORM(db.table, ...)
...
Richard