db.define_table('calls',
  SQLField('number','integer'),
  SQLField('created','datetime')
)

def indexC():
  return dict()

def updateC():
  rows=db(db.calls.id==1).select()
  form1=SQLFORM(db.calls,rows[0])
  form1.vars.number=5
  if form1.accepts(request.vars):
    session.flash='form accepted!'
    redirect(URL(r=request,f='index'))
  elif form1.errors:
    response.flash='please fix errors and re-submit'
  return dict(form1=form1)

Shouldn't updateC change the number of call with id==1 to 5?

Actually, the value does not get changed in previous versions either,
but the manual says:

Prepopulating the form

It is always possible to prepopulate a form using the syntax:
form.vars.name='fieldvalue'
Statements like the one above must be inserted after the form
declaration and
before the form is accepted, whether or not the field ("name" in the
example)
is explicitly visualized in the form.

If you hide the number field using
form1=SQLFORM(db.calls,rows[0],fields=['created'])
then the number of the call with id==1 gets changed to 5.

Maybe it is just a wording misunderstanding.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to