What I would like to see is a form where the components are accesible
by field name.
I think you once said something about extending the SQLFORM class, any
rules on this?.

I am also siding with Jose on the use of DIVs instead of TRs since
they are more easily manipulated using CSS (e.g. 
http://jeffhowden.com/code/css/forms/
).

On Oct 10, 12:08 am, mdipierro <[EMAIL PROTECTED]> wrote:
> form is the form, form[0] is the table inside it. form[0][0] is the
> first row. form[0][-1] is the last row, etc.
> You can do
>
>     form[0].append(TR('Label',TAG.button('whatever'),'comment'))
>
> You can add more attributes to your TAG.button
>
> On Oct 9, 8:39 pm, Jose de Oliveira Filho <[EMAIL PROTECTED]>
> wrote:
>
> > Thanks a bunch, Massimo. I completely overlooked the "hidden" thing
> > in the FORM source, but the first answer is what I was looking for.
>
> > I need to add an extra button to a SQLFORM, like "Save and Add
> > another". I could put it outside the form but it looks really bad,
> > any recommendations here ?
>
> > By the way, did you ever think of turning the SQLFORM generation into
> > divs instead of a table ?
>
> > Thanks again,
>
> > Deodoro Filho
>
> > Em 09/10/2008, às 18:04, mdipierro escreveu:
>
> > > Good questions. Answers below.
>
> > >> (in controller:)
> > >> def new_project():
> > >>    f = FORM(INPUT(_name = "project_title", _type = "text"))
> > >>    if f.accepts(request.vars, session):
> > >>       db.project.insert(dict(title = f.vars.title, description =
> > >> f.vars.description, user = session.user_id))
> > >>       redirect(URL(r = request, f = "list"))
> > >>    else:
> > >>       return dict(form = f)
>
> > >> My question is: is there some way of doing:
> > >> ...db.insert.project(f.vars)...
> > >> ?
>
> > >> I'd be awesome if I could make "user" a hidden field directly.
> > >> That'd be like:
>
> > >> ...f = SQLFORM(db.project, hidden = [db.project.user])
> > >>    f.vars.user = session.user_id...
>
> > >> and then remove the db.project.insert line.
>
> > > There are many ways you can do it:
>
> > > 1) the recommended way
>
> > >      # list only the fields you want and pass the others directly to
> > > the vars
> > >      f=SQLFORM(db.project,fields=['title'])
> > >      f.vars.user=session.user_id
>
> > > 2) use a hidden field
>
> > > f=SQLFORM(db.project,fields=['title'],hidden=dict
> > > (user=session.user_id))
> > >      #but now the visitor can tamper with the hidden field in the form
>
> > > 3) Manually using
>
> > >     ## vars has to be a dictionary (like form.vars) and must only
> > > contain valid fields, not including id.
> > >     vars=form.vars
> > >     vars.user=session.user_id
> > >     db.project.insert(**vars)
> > >     ## the ** unpacks the dictionary into named arguments
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to