How can I pre populate a option column of a form?

193 views
Skip to first unread message

Andrea Marin

unread,
Apr 20, 2016, 6:05:06 PM4/20/16
to web2py-users
Hi I have this type of form in my model file:

db.define_table('pratiche',
                Field('nome', requires=IS_NOT_EMPTY()),
                Field('descrizione', 'text', requires=IS_NOT_EMPTY()),
                Field('tipo_allegato', requires=IS_IN_SET(['mandato', 'comparsa preliminare', 'relazione ctu', 'parcella'])),
                Field('doc_filename'),
                Field('doc', 'upload'),
                Field('stato_pratica', requires=IS_IN_SET(['aperta', 'attesa', 'chiusa'])),
                auth.signature)


I want to setup a default value for field stato_pratica to 'aperta' every time a user create a new record
This is my controller function to create a new record

def create():
    form = SQLFORM(db.pratiche).process()
    form.vars.stato_pratica = 'aperta'
    form.add_button('Back', URL('index'))
    if form.accepted:
        session.flash = T('Posted')
        redirect(URL('index'))
    elif form.errors:
        session.flash = T('Il form ha degli errori')
    return locals()

I try to set form.values.stato_pratica = 'aperta' but it not works.

Thanks.

Michael Beller

unread,
Apr 20, 2016, 11:22:46 PM4/20/16
to web2py-users
before you call SQLFORM, insert:
db.pratiche.stato_pratica.default = 'aperta'

Andrea Marin

unread,
Apr 21, 2016, 5:23:59 PM4/21/16
to web...@googlegroups.com
Trans a lot 
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to a topic in the Google Groups "web2py-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/web2py/QJ1aaP5Febo/unsubscribe.
To unsubscribe from this group and all its topics, send an email to web2py+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Val K

unread,
Apr 28, 2016, 2:10:46 PM4/28/16
to web...@googlegroups.com
'form.vars.field = any'  must be placed before form.process()
So, in your case:
    form = SQLFORM(db.pratiche)
    form
.vars.stato_pratica = 'aperta'
    

   
if form.process().accepted:

    ...
    form.add_button('Back', URL('index'))  #  it's a DOM-manipulation - place it after form.process()
   

Andrea Marin

unread,
Apr 28, 2016, 5:18:20 PM4/28/16
to web2py-users
Thanks for this method
Reply all
Reply to author
Forward
0 new messages