> > candidate_form = SQLFORM(db.candidate, candidate_record, > hidden={'ownerUserId': candidate_record.ownerUserId}) > > > <input type="hidden" name="id" value="{{= candidate.id }}" /> >
First, shouldn't that be name="ownerUserId" and candidate.ownerUserId? Note, hidden fields are not really part of the form object and do not get processed with the other form fields. They are merely added to the HTML when the form is serialized in the view so the hidden field values come back with the form submission. It is then up to you to do whatever you want with those values manually. If you want them to be processed as regular fields of the database table, I think you could do something like: candidate_form = SQLFORM(db.candidate, candidate_record, hidden=dict(ownerUserId=candidate_record.ownerUserId)) candidate_form.vars.ownerUserId = request.vars.ownerUserId candidate_form.process() Anyway, I think the other method might be better because you don't have to bother including and manually manipulating hidden fields, and it won't unnecessarily run validators on the non-updated fields. Anthony --