> > I would have to assume that the hiddens are only generated > because of the call to FORM.accepted().
Correct. FORM.process() ultimately calls FORM.accepts(), which adds a "formname" attribute. When the form is serialized in the view, the FORM.xml() method calls FORM.hidden_fields(), which creates a _formname hidden field and, optionally, a _formkey hidden field (the latter is created when session is passed to .accepts() and is used to protect against CSRF and double submission). For a FORM object, _formname defaults to "default", and for a SQLFORM, it defaults to "[table_name]/create" or "[table_name]/[record_id]". > Should I assume then > that the 'formname' keyword is only necessary when there is > more than one form in the page? > Yes, though as noted above, when the formname argument isn't specified, there will still be a default _formname. Anthony --