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