Hi,

On GAE, I use appadmin to update a record which includes an upload
field.  If I chose to retain the existing file, or delete it, a
KeyError will be thrown.

Tracing into the code I believed that the following patch is
necessary:

In sqlhtml.py:SQLFORM:accepts(), there is a block:

                if f == '' or f == None:
                    if self.vars.get(fd, False) or not self.record:
                        fields[fieldname] = ''
                    else:
                        fields[fieldname] = self.record[fieldname]
                    self.vars[fieldname] = fields[fieldname]
                    continue

that should be updated to:

                if f == '' or f == None:
                    if self.vars.get(fd, False) or not self.record:
                        fields[fieldname] = ''
                        if isinstance(field.uploadfield,str):
                            fields[field.uploadfield] = None
                    else:
                        fields[fieldname] = self.record[fieldname]
                        if isinstance(field.uploadfield,str):
                            fields[field.uploadfield] =
self.record[field.uploadfield]
                    self.vars[fieldname] = fields[fieldname]
                    continue

Thank you

Reply via email to