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.