Fran, you are right. This is not a bug. Handling hidden fields otherwise would result in a security vulenrability.
On can also do form=SQLFORM(....) form.vars.hidden_field_name=request.vars_hidden_field_name if form.accepts(....) On Aug 3, 4:59 am, Fran <francisb...@googlemail.com> wrote: > On Aug 2, 9:19 pm, mattynoce <mattyn...@gmail.com> wrote: > > > hi, i have a question about hidden fields. > > i have a form that looks like this: > > fields=['f1','f2','f3'...] > > hidden=dict(fieldname=val) > > form = SQLFORM(db.table, fields=fields, showid=False, hidden=hidden) > > in the view it's simply {{=form}} > > when i look at the view, there's a hidden input field for my hidden > > field. however, when i do the insert, the hidden field is not getting > > inserted into my db. the accept info is: > > if form.accepts(request.vars,session): > > session.flash='Added' > > redirect(URL(r=request, f="function")) > > am i doing something wrong? why would the hidden field show up > > properly in the view but not update the db? > > Hi Matt, > > I didn't know about this functionality before as it's not a documented > option in the docstring for SQLFORM (or FORM), but I see it in the > manual now. > > Looking at the code in sqlhtml.py, it seems that the hidden fields > aren't processed by SQLFORM itself...I guess this is a design rather > than a bug (the hidden fields would normally be for other things than > DB fields). > > You have several options to achieve what you want, including: > (1) Process this field manually in the 'if form.accepts' part > (2) Don't pass the field as hidden to 'form' but instead use jQuery to > hide the row (default value can be set within model or by jQuery) > (3) Follow Massimo's suggestion: > db.table.hidden_field.writable = False > form = SQLFORM(db.table, fields=fields, showid=False, hidden=hidden) > db.table.hidden_field.writable = True > if form.accepts(request.vars,session): > > Best Wishes, > Fran. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---