jim, thank you for you time, what is causing the error is, if i use {{=form}} my code works, but if i use the form.custom, my code not work, if i remove form.element(_id='no_table_cities').update(_class='selectpicker') in my controller, form custom work again, so i have not idea about what is goin on here,
iam using my own custom html, because, form custom, and form, generate much bootstrap classes betwen my code, and iam using a custom theme, This is a bit of a problem, I like to have control in my hands, since I identified that web2py identifies my inputs by the id and name of the element, I have not used it the old way. I think it is well related to selectpicker, because if I use any other class besides this, it does not interfere with the capture of my select data terça-feira, 21 de Agosto de 2018 às 17:07:23 UTC-3, Jim S escreveu: > > Ok, now that we know the problem isn't with SQLFORM.factory lets look > closer at the generated html when using {{=form}} vs the html you typed in. > > Specifically: > > <select class="form-control selectpicker" id="no_table_address_type" > name="address_type" data-style="btn-info btn-outline-info"> > > {{for t in address_type_list:}} > <option value="{{=t.id}}">{{=t.type}}</option> > {{pass}} > </select> > > I'm curious why you're using your own custom html instead of using the > custom form technique. > http://web2py.com/books/default/chapter/29/07/forms-and-validators#Custom-forms > > {{=form.custom.begin}} > {{=form.custom.widget.name}} > {{=form.custom.widget.cpf}} > {{=form.custom.widget.email}} > {{=form.custom.widget.address_type}} > {{=form.custom.widget.cities}} > {{=form.custom.widget.person}} > {{=form.custom.submit}} > {{=form.custom.end}} > > Good luck > > -Jim > > On Tuesday, August 21, 2018 at 2:57:33 PM UTC-5, Rodrigo Gomes wrote: >> >> I just tested with {{= form}} and it really worked, so the problem is >> between >> >> <form action="#" class="form-material" enctype="multipart/form-data" >> method="post"> >> >> <input... >> <input... >> <input... >> <input... >> >> <div class="hidden"> {{=form.hidden_fields()}} >> </div> >> >> <input class="btn btn-info" type="submit" value="Salvar"> >> </form> >> >> >> >> >> terça-feira, 21 de Agosto de 2018 às 13:46:55 UTC-3, Jim S escreveu: >>> >>> Have you tried just displaying the form in your view using {{=form}}. >>> Then add a requires=IS_IN_DB to the fields in your model. I'd do this just >>> to make sure that SQLFORM.factory is working as expected. Make sense? >>> >>> >>> http://web2py.com/books/default/chapter/29/07/forms-and-validators#Database-validators >>> >>> -Jim >>> >>> On Tuesday, August 21, 2018 at 11:34:23 AM UTC-5, Rodrigo Gomes wrote: >>>> >>>> i really think its a bug in form.factory, i tried modify by the >>>> controller too, like >>>> form.element(_id=no_table_cities).update(_class="selectpicker") >>>> >>>> and no sucess. >>>> >>>> terça-feira, 21 de Agosto de 2018 às 13:31:38 UTC-3, Rodrigo Gomes >>>> escreveu: >>>>> >>>>> @auth.requires_login() >>>>> def students(): >>>>> form = form=SQLFORM.factory(db.person, db.address) >>>>> >>>>> cities_list = db(db.cities.id>0).select(db.cities.ALL) >>>>> address_type_list = db(db.address_type.id>0 >>>>> ).select(db.address_type.ALL) >>>>> person_list = db(db.person.id>0).select(db.person.ALL) >>>>> >>>>> >>>>> if form.process().accepted: >>>>> id = db.person.insert(**db.person._filter_fields(form.vars)) >>>>> form.vars.person=id >>>>> id = db.address.insert(**db.address._filter_fields(form.vars)) >>>>> redirect(URL('default','students')) >>>>> response.flash='Form Submetido com sucesso!' >>>>> elif form.errors: >>>>> print(form.errors) >>>>> print(form.vars) >>>>> else: >>>>> print('please fill out the form') >>>>> return dict(form=form, cities_list=cities_list, >>>>> address_type_list=address_type_list, >>>>> person_list=person_list) >>>>> >>>>> >>>>> terça-feira, 21 de Agosto de 2018 às 10:10:39 UTC-3, Peng Wang >>>>> escreveu: >>>>>> >>>>>> How did you define your cities_list? >>>>>> >>>>>> On Thursday, August 16, 2018 at 4:39:35 PM UTC-7, Rodrigo Gomes wrote: >>>>>>> >>>>>>> >>>>>>> Good evening, folks, I've come here to unveil a mystery, I'm >>>>>>> developing an application with web2py, (framework that I use about 3 >>>>>>> years >>>>>>> ago) >>>>>>> >>>>>>> I am using sqlform.factory, passing 2 tables, being that I do this >>>>>>> to fill in a single form, table, person and address, for better >>>>>>> understanding follows my controller, >>>>>>> >>>>>>> >>>>>>> @auth.requires_login() >>>>>>> def students(): >>>>>>> form = form=SQLFORM.factory(db.person, db.address) >>>>>>> >>>>>>> if form.process().accepted: >>>>>>> id = db.person.insert(**db.person._filter_fields(form.vars)) >>>>>>> form.vars.person=id >>>>>>> id = db.address.insert(**db.address._filter_fields(form.vars)) >>>>>>> response.flash='Form Submetido com sucesso!' >>>>>>> >>>>>>> elif form.errors: >>>>>>> print(form.errors) >>>>>>> else: >>>>>>> print('please fill out the form') >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> if it helps, this is my model, the tables and their relationships, >>>>>>> >>>>>>> db.define_table("person", >>>>>>> Field("name", "string", length=50), >>>>>>> Field("cpf", "string", length=11), >>>>>>> Field("birthday", "date", length=11), >>>>>>> Field("email","string", length=40), >>>>>>> Field("registration_date","date", length=40) >>>>>>> ) >>>>>>> >>>>>>> db.define_table("cities", >>>>>>> Field("name", "string"), >>>>>>> Field("state","reference state") >>>>>>> ) >>>>>>> >>>>>>> db.define_table("address_type", >>>>>>> Field("type","string",length=100), >>>>>>> ) >>>>>>> >>>>>>> db.define_table("address", >>>>>>> Field("number","integer"), >>>>>>> Field("public_place","string"), >>>>>>> Field("cep","string",length=15), >>>>>>> Field("complement","string"), >>>>>>> Field("cities",'reference cities'), >>>>>>> Field("address_type",'reference address_type'), >>>>>>> Field("person",'reference person', writable=False,readable=False) >>>>>>> ) >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> This is my view >>>>>>> >>>>>>> <form action="#" class="form-material" enctype="multipart/form-data" >>>>>>> method="post"> >>>>>>> <div class="form-group"> >>>>>>> <div class="col-md-12 m-b-20"> >>>>>>> <!--form.custom.widget.name --> >>>>>>> <input class="form-control" id="no_table_name" >>>>>>> name="name" type="text" placeholder="nome"> >>>>>>> </div> >>>>>>> <div class="col-md-12 m-b-20"> >>>>>>> <!--form.custom.widget.cpf --> >>>>>>> <input class="form-control" id="no_table_cpf" >>>>>>> name="cpf" type="text" placeholder="cpf"> >>>>>>> </div> >>>>>>> >>>>>>> <div class="col-md-12 m-b-20"> >>>>>>> <!--form.custom.widget.email --> >>>>>>> <input class="form-control" id="no_table_email" >>>>>>> name="email" type="text" placeholder="email"> >>>>>>> </div> >>>>>>> >>>>>>> <div class="col-md-12 m-b-20"> >>>>>>> <!-- <select class="form-control generic-widget" >>>>>>> id="no_table_address_type" name="address_type"><option >>>>>>> value="">Vazio</option><option value="1">Comercial</option><option >>>>>>> value="2">Residencial</option></select> --> >>>>>>> >>>>>>> <select class="form-control selectpicker" >>>>>>> id="no_table_address_type" name="address_type" data-style="btn-info >>>>>>> btn-outline-info"> >>>>>>> >>>>>>> {{for t in address_type_list:}} >>>>>>> <option value="{{=t.id}}">{{=t.type}}</option> >>>>>>> {{pass}} >>>>>>> </select> >>>>>>> </div> >>>>>>> <div class="col-md-12 m-b-20"> >>>>>>> <select id="no_table_cities" name="cities" >>>>>>> data-style="btn-info btn-outline-info" required> >>>>>>> {{for city in cities_list:}} >>>>>>> <option value="{{=city.id}}" >>>>>>> >{{=city.name}}</option> >>>>>>> {{pass}} >>>>>>> </select> >>>>>>> </div> >>>>>>> >>>>>>> <!--form.custom.end --> >>>>>>> <div class="hidden"> >>>>>>> {{=form.hidden_fields()}} >>>>>>> </div> >>>>>>> </div> >>>>>>> >>>>>>> <div class="modal-footer"> >>>>>>> <input class="btn btn-info" type="submit" value="Salvar"> >>>>>>> <button type="button" class="btn btn-default waves-effect" >>>>>>> data-dismiss="modal">Cancelar</button> >>>>>>> </div> >>>>>>> </div> >>>>>>> </form> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> now the problem: this selectpicker, simply my form can not store the >>>>>>> value of select, when I add this class, I needed it, I do not need it >>>>>>> that >>>>>>> much, but it became a mission to understand what's happening here, I >>>>>>> gave a >>>>>>> print em form. vars.cities and she's just like None, help please >>>>>>> >>>>>>> <Storage {'name': 'maria', 'cpf': '09102910', 'birthday': None, >>>>>>> 'email': 'rodg...@gmail.com', 'registration_date' public_place ':' >>>>>>> ',' '' '' '' '' '' '' '' '' '' 'cities': None, 'address_type': None, >>>>>>> 'person': 4}> >>>>>>> >>>>>> -- 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 the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.