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': '[email protected]', '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 [email protected].
For more options, visit https://groups.google.com/d/optout.