> On Tuesday, June 7, 2011 2:26:45 AM UTC-4, Gwayne aka Mike Veltman wrote:
> > > On Monday, June 6, 2011 9:15:27 PM UTC-4, Gwayne aka Mike Veltman wrote:
> > > > And that was it...
> > > >
> > > > Thank you very much. Mmmm, this should go in the book..
> > >
> > > There's also this method of pre-populating a form field:
> > > http://web2py.com/book/default/chapter/07#Pre-populating-the-form
> >
> > Yes I know, but I did read in the mailing list that that was not a smart
> > idea.
>
> I wasn't aware of that. Why is it not a smart idea?
>
I am trying to find it it was actually in the mailing list a discussion about
it and the suggestion was to use the default.
> > Also those vars do not exist before I create the form. So you would get a
> > error if you do so.
>
> But is there any reason you couldn't make the assignment right after the
> form is created (i.e., instead of assigning a new default right before the
> form creation, assign a value to the form var right after creation)?
>
> Anthony
Maybe I just do it plain wrong :-)
form = SQLFORM(db.lvstorage)
form.vars.lunid = 2 # Does not work
Thats how I did it.
Now I have a complicated system :) My goal is/was to make the lunid
autoincrement with each submit.
Now I use this (btw I am not a programmer so, suggestions are always welcome.)
if not request.vars.newrecord: # For the newrecord button
newrecord = False
if request.vars.newrecord: # For the newrecord button
session.lunid = 2
newrecord = True
if not request.args or newrecord == True: # If called directly from
menu or newmenu button
if session.lunid == 2:
# Default settings for the page
db.lvstorage.lunid.default = 2
db.lvstorage.setup_id.default = 1
db.lvstorage.lvsize_id.default = 2
db.lvstorage.storagemap_id.default = 1
session.setup_id = 1
session.storagemap_id = 1
session.lvsize_id = 2
else:
if session.lunid == 31: # Lunid 31 is managed by the
controller so skip it
session.lunid = 32
if request.vars.setup_id : # To make sure that if the var does
not exist it will not change the session var
session.setup_id = request.vars.setup_id
if request.vars.lvsize_id :
session.lvsize_id = request.vars.lvsize_id
if request.vars.storagemap_id :
session.storagemap_id = request.vars.storagemap_id
db.lvstorage.lunid.default = int(session.lunid)
db.lvstorage.setup_id.default = session.setup_id
db.lvstorage.lvsize_id.default = session.lvsize_id
db.lvstorage.storagemap_id.default = session.storagemap_id
if request.vars.checkbox: # If checkbox is used do not increase
lunid
pass
else:
session.lunid = int(session.lunid) + 1 # Increase lun id
form = SQLFORM(db.lvstorage)
With regards,
Mike Veltman