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.

Reply via email to