Hi Massimo, thank for the answer, I updated the code but the problem is still there, I made several tests, no one figured out what is wrong. So that I tried to simplify the code as follows: db.define_table('test_img', Field("picture", "upload", uploadfolder=os.path.join(request.folder,'uploads','pictures'), uploadseparate=True), Field('created_on', 'datetime', default=request.now, writable=False) )
def sqlform_add(): form = SQLFORM.factory(db.test_img, _class='well', upload=URL('default', 'download'), uploadfolder=os.path.join(request.folder, 'uploads','pictures'), uploadseparate=True, table_name='test') if form.process(dbio=False).accepted: id = db.test_img.insert(**dict(form.vars)) return response.render('generic.html', dict(form=form)) def sqlform_edit(): img = db(db.test_img.id>0).select().first() db.test_img['picture'].default = img['picture'] form = SQLFORM.factory(db.test_img, _class='well', upload=URL('default', 'download'), uploadfolder=os.path.join(request.folder, 'uploads','pictures'), uploadseparate=True, table_name='test') if form.process(dbio=False).accepted: print 'form accepted' return response.render('generic.html', dict(form=form)) what I got: - adding an img with sqlform_add and then removing it with appadmin --> worked - adding an img with appadmin and then removing it with sqlform_edit --> failed - using both sqlform_add and sqlform_edit --> failed Now I am thinking about the way I set the default value, maybe for a field as an upload I have to set something more? Paolo On Thursday, December 27, 2012 9:28:54 PM UTC+1, Massimo Di Pierro wrote: > > perhaps not the cause of the problem but > > request.folder+'uploads/pictures' > > should be > > os.path.join(request.folder,'uploads','pictures') > > On Thursday, 27 December 2012 00:30:00 UTC-6, Paolo wrote: >> >> Hi Massimo, >> I've just tried to post and then edit with both SQLFORM.factory having >> uploadseparate but nothing has changed. The problem is still there, >> actually I am making explicitly inserts and edits. >> The whole SQLFORM.factory to edit a field is this: >> for field in ['title','description', 'user_contact','picture' >> ]: >> db.club[field].default = club[field] >> for field in ['name']: >> db.cities[field].default = city[field] >> form = SQLFORM.factory(db.club, db.cities, _class='well', >> formstyle='bootstrap', showid= False, >> upload=URL('default', >> 'download'),uploadfolder >> =request.folder+'uploads/pictures', >> uploadseparate=True, >> autodelete=True,table_name >> ='club') >> >> >> Paolo >> >> >> >> On Thursday, December 27, 2012 12:47:19 AM UTC+1, Massimo Di Pierro wrote: >>> >>> Did you upload the file first and then add uploadseparate/uploadfolder? >>> >>> On Wednesday, 26 December 2012 12:49:01 UTC-6, Paolo wrote: >>>> >>>> Hi all, >>>> it seems to me that SQLFORM.factory doesn't honor the uploadseparate >>>> option because I'am not able to delete the uploaded file with >>>> SQLFORM.factory >>>> >>>> form = SQLFORM.factory(db.club, db.cities, _class='well', >>>> formstyle='bootstrap', showid= False, >>>> upload=URL('default', 'download'), uploadfolder= >>>> request.folder+'uploads/pictures', >>>> uploadseparate=True, autodelete=True, table_name >>>> ='club' ) >>>> >>>> >>>> >>>> The error: >>>> Enter code here...2012-12-26 19:38:07,728 - web2py - ERROR - Traceback >>>> (most recent call last): >>>> File "/home/paolo/Dropbox/git/web2py/gluon/restricted.py", line 212, >>>> in restricted >>>> exec ccode in environment >>>> File >>>> "/home/paolo/Dropbox/git/web2py/applications/bikend/controllers/club.py" >>>> , line 123, in <module> >>>> File "/home/paolo/Dropbox/git/web2py/gluon/globals.py", line 193, in >>>> <lambda> >>>> self._caller = lambda f: f() >>>> File "/home/paolo/Dropbox/git/web2py/gluon/tools.py", line 2935, in f >>>> return action(*a, **b) >>>> File >>>> "/home/paolo/Dropbox/git/web2py/applications/bikend/controllers/club.py" >>>> , line 35, in modal >>>> d = {'form':club_form(c_id=club_id)} >>>> File >>>> "/home/paolo/Dropbox/git/web2py/applications/bikend/controllers/club.py" >>>> , line 103, in club_form >>>> if form.process(dbio=False).accepted: >>>> File "/home/paolo/Dropbox/git/web2py/gluon/html.py", line 2179, inprocess >>>> self.validate(**kwargs) >>>> File "/home/paolo/Dropbox/git/web2py/gluon/html.py", line 2118, >>>> invalidate >>>> if self.accepts(**kwargs): >>>> File "/home/paolo/Dropbox/git/web2py/gluon/sqlhtml.py", line 1408, >>>> inaccepts >>>> source_file = open(f, 'rb') >>>> IOError: [Errno 2] No such file or directory: >>>> '/home/paolo/Dropbox/git/web2py/applications/bikend/club.picture.a4bd97789f289bcc.6c6f676f322e706e67.png' >>>> >>>> It tries to remove the file in the wrong directory. The right one would >>>> be: >>>> <cod... >>>> Show >>>> original<https://groups.google.com/group/web2py/msg/ff7178943040387c?dmode=source&output=gplain&noredirect> >>>> >>> --