Look at this lines:

if form.accepts(request.vars, session,keepvalues=True):
        db.events.insert(**db.events._filter_fields(form.vars))

form.accepts does the insert already for you. You do not need the
second line.

Massimo

On Jun 16, 9:25 am, Nils Olofsson <nils.olofs...@gmail.com> wrote:
> Hi,
> I have this:
>
> tags=db().select(db.event_tags.ALL)
>     form
> =SQLFORM(db.events,fields=['title','venue','starttime','endtime','location' 
> ,'image','cost','website','booking','latlng','information'])
>     #form = SQLFORM(db.events)
>     my_extra_element = TR("",INPUT(_id='Lookup',_value="Check
> Map",_type='submit'))
>     form[0].insert(5,my_extra_element)
>     my_extra_element = TR("Add
> Tags",SELECT(_name='tags',_multiple='multiple',*[OPTION(tags[i].name,_value 
> =str(tags[i].id))
> for i in range(len(tags))]))
>     form[0].insert(-1,my_extra_element)
>
>     if form.accepts(request.vars, session,keepvalues=True):
>         db.events.insert(**db.events._filter_fields(form.vars))
>         cache.ram.clear()
>         response.flash = 'form accepted'
>         redirect(URL('index'))
>         print "form accepted"
>     elif form.errors:
>         response.flash = 'form has errors'
>         print "form has errors"
>     else:
>         response.flash = 'please fill out the form'
>         print "fill out form"
>     return dict(form=form)
>
> this is part of the  database model is this:
>
>     Field('image', 'upload',label=T('Profile Image')),
>     Field('userid',db.auth_user,default = auth.user and auth.user.id),
>     Field('tags','list:reference event_tags')
>
> Whenever I submit the form, 2 records get added. I'm not sure as to
> why this is happening.
> Could anyone shed some light on this problem ?
>
> Nils

Reply via email to