By the way I only want that form.process(dbio=False) just validate form, (so I set dbio=False), but what to do in order it would'n create uploaded files? I want to do it manually, because it saves photo in folder '...uploads/biography_{id}.photo_jpg/...' (I have named the form in this way because of validation collisions). Manually I upload to folder '.../uploads/biography_photo.photo_jpg/...' (named by table name) and now I have 2 copies of the same photo. Just suggestion: maybe accepts() shouldn'taccess uploaded/attached files if dbio=False at all?
2012 m. rugsėjis 12 d., trečiadienis 07:24:42 UTC+3, Donatas Burba rašė: > > Using web2py 2.0.8 and submitting form with attached photo file (standard > widget) and 'delete' (photo) checked I get such error: > > Traceback (most recent call last): > File "/home/donatas/ProCursus/projects/web2py/gluon/restricted.py", line > 209, in restricted > exec ccode in environment > File > "/home/donatas/ProCursus/projects/web2py/applications/bow/controllers/plugin_biography.py", > line 4797, in <module> > File "/home/donatas/ProCursus/projects/web2py/gluon/globals.py", line 185, > in <lambda> > self._caller = lambda f: f() > File "/home/donatas/ProCursus/projects/web2py/gluon/tools.py", line 2783, > in f > return action(*a, **b) > File > "/home/donatas/ProCursus/projects/web2py/applications/bow/controllers/plugin_biography.py", > line 1022, in edit_biography_client > if form.process(dbio=False, > onvalidation=__check_biography_status).accepted: > File "/home/donatas/ProCursus/projects/web2py/gluon/html.py", line 2106, in > process > self.validate(**kwargs) > File "/home/donatas/ProCursus/projects/web2py/gluon/html.py", line 2053, in > validate > if self.accepts(**kwargs): > File "/home/donatas/ProCursus/projects/web2py/gluon/sqlhtml.py", line 1331, > in accepts > source_file = open(f, 'rb') > IOError: [Errno 2] No such file or directory: > '/home/donatas/ProCursus/projects/web2py/applications/bow/biography_photo.photo_jpg.b85f77f1863e10a9.31365f425544494e41535f532e7469662e6a7067.jpg' > > > I see that folder 'uploads' is missing in path. I think it's bug, because it > was working with v1.99.7. My model: > > db.define_table('biography_photo', > > Field('biography_id', 'reference biography_biography', readable=False, > writable=False), > Field('photo_jpg', 'upload', label=T('biography_photo__photo'), > uploadfolder=os.path.join(request.folder, 'uploads'), > uploadseparate=True, autodelete=True, > represent = lambda value, row: A(row.photo_filename, > _href=URL('download', args=value))), > Field('photo_filename') > ) > > --