Since post-1.79.2 versions introduced a bug regarding the fields
'upload'.
Given the following application:
Model:
db.define_table('mitabla',
Field('nombre'),
Field('archivo', 'upload', autodelete=True,),
)
Controller:
def subirarchivo():
form = crud.create(db.mitabla)
registros = db(db.mitabla.id>0).select()
return dict(form=form, registros=registros)
def editararchivo():
form = crud.update(db.mitabla, request.args[0])
return dict(form=form)
View (subirarchivo):
{{=form}}
<ul>
{{for r in registros:}}
<li>{{=r.id}} | {{=r.nombre}} {{=A('[editar]',
_href=URL(r=request, f='editararchivo', args=[r.id]))}}</li></li>
{{pass}}
</ul>
When I edit a record I get the following error:
Traceback (most recent call last):
File "/usr/home/jose/web2py/gluon/restricted.py", line 178, in
restricted
exec ccode in environment
File "/usr/home/jose/web2py/applications/ppppp/controllers/
prueba.py", line 66, in <module>
File "/usr/home/jose/web2py/gluon/globals.py", line 96, in <lambda>
self._caller = lambda f: f()
File "/usr/home/jose/web2py/applications/ppppp/controllers/
prueba.py", line 62, in editararchivo
form = crud.update(db.mitabla, request.args[0])
File "/usr/home/jose/web2py/gluon/tools.py", line 2708, in update
onvalidation=onvalidation, keepvalues=keepvalues):
File "/usr/home/jose/web2py/gluon/sqlhtml.py", line 1027, in accepts
self.table._db(self.table.id == self.record.id).update(**fields)
File "/usr/home/jose/web2py/gluon/sql.py", line 3331, in update
self.delete_uploaded_files(update_fields)
File "/usr/home/jose/web2py/gluon/sql.py", line 3363, in
delete_uploaded_files
if self.uploadseparate:
AttributeError: 'Set' object has no attribute 'uploadseparate'
José