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')
> )
>
>
--