Thank you very much, Anthony! This was exactly what i was looking for. Problem solved.
Op vrijdag 11 mei 2012 19:07:32 UTC+2 schreef Anthony het volgende: > > Are you trying to auto-complete a reference field, and you want to be able > to add new records to the referenced table? The built-in autocomplete > widget doesn't handle that out of the box, but upon submission, you could > check the request variables, and if the submitted value doesn't belong to > an existing record in the referenced table, you could do an insert: > > Model: > > db.define_table('category', Field(name)) > > db.define_table('article', > Field('title'), > Field('body', 'text'), > Field('category', db.category, > widget=SQLFORM.widgets.autocomplete(request, > db.category.name,id_field > =db.category.id))) > > Controller: > > def myfunction(): > if request.post_vars._autocomplete_name_aux and not request.post_vars. > category: > request.post_vars.category = db.category.insert(name=request. > post_vars._autocomplete_name_aux) > return dict(form=SQLFORM(db.article).process()) > > When you use the autocomplete widget on a reference field, it submits the > display value in a special field named > _autocomplete_[display_field_name]_aux, and the actual field value is the > record ID of the referenced record associated with the display value. > However, if you enter and submit a display value that does not have an > associated record in the referenced table, the reference field value will > simply be empty (though the _autocomplete_..._aux field will contain the > submitted display value). > > For example, when submitting a new article, suppose you enter > "programming" in the category input field, but "programming" does not yet > exist in the db.category table. In that case, request.post_vars.category > will be empty, and request.post_vars._autocomplete_name_aux will contain > the word "programming". In that case, the above code inserts "programming" > into the db.category table and stores the new record ID in > request.post_vars.category. When the form is then processed, the new > db.article record will be created, with the new db.category record ID > stored in the db.article.category field. > > Perhaps the autocomplete widget should handle this automatically (with an > optional setting). > > Anthony > > On Thursday, May 10, 2012 12:44:51 PM UTC-4, gfdgdgfdg wrote: >> >> Hello everyone, >> >> I'm looking for a way to get an auto-complete field combined with adding >> non-existing item to the DB. I've seen a website which >> uses this functionality (demo: http://www.tellmehow.nl/video.html ) >> >> I have already tried SELECT_OR_ADD_OPTION but i don't like drop-downs... >> >> Thanks in advance! >> Remco > > Op vrijdag 11 mei 2012 19:07:32 UTC+2 schreef Anthony het volgende: > > Are you trying to auto-complete a reference field, and you want to be able > to add new records to the referenced table? The built-in autocomplete > widget doesn't handle that out of the box, but upon submission, you could > check the request variables, and if the submitted value doesn't belong to > an existing record in the referenced table, you could do an insert: > > Model: > > db.define_table('category', Field(name)) > > db.define_table('article', > Field('title'), > Field('body', 'text'), > Field('category', db.category, > widget=SQLFORM.widgets.autocomplete(request, > db.category.name,id_field > =db.category.id))) > > Controller: > > def myfunction(): > if request.post_vars._autocomplete_name_aux and not request.post_vars. > category: > request.post_vars.category = db.category.insert(name=request. > post_vars._autocomplete_name_aux) > return dict(form=SQLFORM(db.article).process()) > > When you use the autocomplete widget on a reference field, it submits the > display value in a special field named > _autocomplete_[display_field_name]_aux, and the actual field value is the > record ID of the referenced record associated with the display value. > However, if you enter and submit a display value that does not have an > associated record in the referenced table, the reference field value will > simply be empty (though the _autocomplete_..._aux field will contain the > submitted display value). > > For example, when submitting a new article, suppose you enter > "programming" in the category input field, but "programming" does not yet > exist in the db.category table. In that case, request.post_vars.category > will be empty, and request.post_vars._autocomplete_name_aux will contain > the word "programming". In that case, the above code inserts "programming" > into the db.category table and stores the new record ID in > request.post_vars.category. When the form is then processed, the new > db.article record will be created, with the new db.category record ID > stored in the db.article.category field. > > Perhaps the autocomplete widget should handle this automatically (with an > optional setting). > > Anthony > > On Thursday, May 10, 2012 12:44:51 PM UTC-4, gfdgdgfdg wrote: >> >> Hello everyone, >> >> I'm looking for a way to get an auto-complete field combined with adding >> non-existing item to the DB. I've seen a website which >> uses this functionality (demo: http://www.tellmehow.nl/video.html ) >> >> I have already tried SELECT_OR_ADD_OPTION but i don't like drop-downs... >> >> Thanks in advance! >> Remco > >