You are you doing this: if edit_mode:
id = int(request.args[0]) q = db.upload_file.id == id rows = db(q).select() for row in rows: for field in row: if field in db.upload_file.fields: db.upload_file[field].default = row[field] ... form = SQLFORM.factory(db.upload_file, fields=fields, submit_button=T('Add to Print Queue') if not edit_mode else T('Update Queue'), upload=URL('download')) Instead of button = T('Add to Print Queue') if not edit_mode else T('Update Queue') form = SQLFORM(db.upload_file, request.args(0,cast=int,default=0), upload=URL('download'), submit_button=button).process() On Monday, 21 November 2016 09:42:54 UTC-6, Kenwyn Pilgrim wrote: > > I too have this issue with using SQLFORM.factory to edit. > > My model looks like: > > db.define_table('upload_file', > > Field('doc_type', 'reference document_type', required=True, > label=T('Type')), > > Field('pdf_name', 'upload', label=T('PDF Document'), > > uploadfolder=os.path.join(request.folder, 'uploads', > 'user_data')),...) > > > my controller looks like: > > ... > > > edit_mode = len(request.args) > 0 > > if edit_mode: > > id = int(request.args[0]) > > q = db.upload_file.id == id > > rows = db(q).select() > > for row in rows: > > for field in row: > > if field in db.upload_file.fields: > > db.upload_file[field].default = row[field] > > > > ... > > form = SQLFORM.factory(db.upload_file, fields=fields, > > submit_button=T('Add to Print Queue') if not edit_mode > else T('Update Queue'), > > upload=URL('download')) > > ... > > > If I am in edit mode and hit the "Update Queue" button, I get the validation > error "Please select a file", even though I have prepopulated the defaults. > > I have to click the "Choose File" button to select a file *again, *then it > works. > > > Please help. > > Thanks. > > > On Saturday, April 6, 2013 at 11:22:32 AM UTC-5, Massimo Di Pierro wrote: >> >> what are the models? >> >> On Tuesday, 2 April 2013 12:19:12 UTC-5, Ramos wrote: >>> >>> Back to business after almost 2 months i try again to use >>> sqlform.factory to create and edit documents >>> My problem was to generate the link >>> i rearranged my code as follows >>> >>> >>> #if edit a document >>> if request.args(0): >>> >>> row=db((db.trabalhador.id==request.args(0))).select().first() >>> >>> empresa=row.empresa >>> >>> foto=row['foto'] or None >>> #print foto >>> if row: >>> for field in row: >>> >>> if field in db.trabalhador.fields: >>> #POPULATE FIELDS with record to edit >>> db.trabalhador[field].default=row[field] >>> >>> form=SQLFORM.factory(db.trabalhador,db.t_docs, >>> submit_button="Gravar", >>> >>> fields=['nome','bi','ncart','ncartval','rfid','apt_medica','apt_medicaval','val_formacao','f_doc'], >>> table_name='trabalhador', >>> upload=URL('download') >>> ) >>> >>> I see my record and upload fields with [file] link. The [file] link >>> downloads my uploaded file. >>> My upload fields have required= true in db.py!!! >>> I do nothing and just press save >>> >>> I get the error saying that i have to select a file to my upload field. >>> >>> I´m stuck >>> >>> Help please..... >>> >> -- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.