Oh guys, I'm terribly ashamed, sorry for such a lame post from me.
Thanks for your time and consideration. As always, you rock guys :)
Cheers!
On Saturday, January 25, 2014 8:35:33 PM UTC-3, Anthony wrote:
>
> SQLFORM is designed for inserting records into the database, so this is
> not a bug. By default, SQLFORM.process() does an insert. To avoid that, you
> could do SQLFORM.process(..., dbio=False), or just do SQLFORM.validate()
> instead (.validate doesn't do an insert by default).
>
> Anthony
>
> On Saturday, January 25, 2014 5:57:58 PM UTC-5, Luciano Laporta Podazza
> wrote:
>>
>> Hello,
>>
>> I created a form(SQLFORM) to perform a search(without using crud.search)
>> and for some reason, every time I do a search, a new record is created with
>> default values. I really don't know if I'm doing something wrong or is it a
>> bug.
>> Tested with Web2py 2.8.2 on Mac OS X 10.9.1 and MySQL 5. All data created
>> from scratch.
>>
>> Here is the *db.py*:
>>
>> from gluon.tools import Auth, Crud, Service, PluginManager, prettydate
>> auth = Auth(db)
>> crud, service, plugins = Crud(db), Service(), PluginManager()
>>
>>
>>
>>
>> auth.settings.extra_fields['auth_user']= [
>> Field('facebook_id', 'string'),
>> Field('calle', 'string'),
>> Field('numero', 'integer'),
>> Field('ciudad', 'string'),
>> Field('provincia', 'string'),
>> Field('pais', 'string'),
>> Field('telefono', 'string'),
>> Field('celular', 'string'),
>> Field('first_time', 'boolean', default=1),
>> Field('asociacion', 'boolean', default=1),
>> Field('nombre_asociacion', 'string'),
>> Field('email_asociacion', 'string'),
>> Field('telefono_asociacion', 'string'),
>> ]
>>
>>
>>
>>
>> ## create all tables needed by auth if not custom tables
>> auth.define_tables(username=False, signature=False)
>>
>> db.define_table('especies',
>> Field('nombre_especie', 'string', requires=IS_IN_SET(['Canino',
>> 'Felino'], zero=None)),
>> Field('nombre_raza', 'string'),
>> )
>>
>> db.define_table('mascotas',
>> Field('mascotas_id', db.auth_user),
>> Field('foto_mascota', 'upload'),
>> Field('nombre', 'string'),
>> Field('especie', 'string', requires=IS_IN_SET(['Canino','Felino'],zero
>> =None)),
>> Field('raza_canino', db.especies, label="Raza"),
>> Field('raza_felino', db.especies, label="Raza"),
>> Field('color', 'string'),
>> Field('nacimiento', 'date'),
>> Field('genero', 'string', requires=IS_IN_SET(['Macho','Hembra'] ,zero
>> =None)),
>> Field('cruza', 'boolean', default=0),
>> Field('adopcion', 'boolean', default=0),
>> Field('pedigree', 'boolean', default=0),
>> )
>> db.mascotas.raza_canino.requires = IS_EMPTY_OR(IS_IN_DB(db(db.especies.
>> nombre_especie=='Canino'), db.especies.id,'%(nombre_raza)s', zero='Elegir
>> raza'))
>> db.mascotas.raza_felino.requires = IS_EMPTY_OR(IS_IN_DB(db(db.especies.
>> nombre_especie=='Felino'), db.especies.id,'%(nombre_raza)s', zero='Elegir
>> raza'))
>>
>>
>> Table *especies *is where I add some pet species(cats or dogs) and their
>> races.
>>
>> Here is the search on *controller.py*:
>>
>> def search():
>> search = SQLFORM(db.mascotas,
>> fields=[
>> 'especie',
>> 'raza_canino',
>> 'raza_felino',
>> 'genero'])
>> if search.process().accepted:
>> query = db((db.auth_user.id==db.mascotas.mascotas_id)&
>> (db.mascotas.especie==search.vars.especie)&
>> ((db.mascotas.raza_canino==search.vars.raza_canino)|
>> (db.mascotas.raza_felino==search.vars.raza_felino))&
>> (db.mascotas.genero==search.vars.genero)).select(db.mascotas.
>> nombre,
>> db.mascotas.nacimiento,
>> db.auth_user.id,db.mascotas.id)
>> return dict(query=query,search=search)
>> elif search.errors:
>> response.flash = 'form has errors'
>> else:
>> response.flash = 'please fill out the form'
>> query=''
>> return dict(search=search,query=query)
>>
>> Thanks for you help.
>>
>
--
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/groups/opt_out.