I defined the following table:
db.define_table('person',
Field('nodeID','reference node'),
Field('photoName',length=32,writable=False,readable=False),
Field('photoFile',type='upload',requires=IS_EMPTY_OR(IS_IMAGE())),
Field('firstName',length=32,requires=IS_LENGTH(32,error_message=T('length
exceeds 32 characters')),label='Voornaam'),
Field('lastName',length=64,default='',requires=[IS_LENGTH(64,error_message=T('length
exceeds 64 charactrer')),IS_NOT_EMPTY()],notnull=True),
format='%(firstName)s %(lastName)s',
migrate=False)
When I use appadmin to insert a record a get the following error ticket:
Traceback (most recent call last):
File "/Library/Python/2.6/site-packages/web2py/gluon/restricted.py", line
209, in restricted
exec ccode in environment
File
"/Library/Python/2.6/site-packages/web2py_2.0/applications/init/controllers/appadmin.py"
<http://127.0.0.1:8000/admin/edit/init/controllers/appadmin.py>, line 444, in
<module>
File "/Library/Python/2.6/site-packages/web2py/gluon/globals.py", line 186,
in <lambda>
self._vars = None
File
"/Library/Python/2.6/site-packages/web2py_2.0/applications/init/controllers/appadmin.py"
<http://127.0.0.1:8000/admin/edit/init/controllers/appadmin.py>, line 129, in
insert
if form.accepts(request.vars, session):
File "/Library/Python/2.6/site-packages/web2py/gluon/sqlhtml.py", line 1337,
in accepts
self.vars[fieldname] = fields[fieldname] = True
UnboundLocalError: local variable 'source_file' referenced before assignment
Function argument list
(self=<gluon.sqlhtml.SQLFORM object at 0x15ec5e30>, request_vars=<Storage
{'familyNamePreposition': 'van', 'modif..., 'photoName': '', '_formname':
'person/create'}>, session=<Storage {'last_orderby': None, 'last_query':
'd...d\xa7d\xf1|P?\xef\x8a\xad\x7f\xbf\xaf\xb7\xb88'}>,
formname='person/create', keepvalues=False, onvalidation=None, dbio=True,
hideerror=False, detect_record_change=False)
Code listing
1332.
1333.
1334.
1335.
1336.
1337.
1338.
1339.
1340.
1341.
field = self.table[fieldname]
if field.type == 'id':
continue
if field.type == 'boolean':
if self.vars.get(fieldname, False):
self.vars[fieldname] = fields[fieldname] = True
else:
self.vars[fieldname] = fields[fieldname] = False
elif field.type == 'password' and self.record\
and request_vars.get(fieldname, None) == \
Variables fields {'gender': 'male', 'nodeID': 8, 'photoName': ''} self
<gluon.sqlhtml.SQLFORM
object at 0x15ec5e30> fieldname 'photoFile' builtinTrue True self.vars
<Storage
{'familyNamePreposition': 'van', 'modif...': None, 'lastName': 'Leeuwen',
'photoName': ''}>
When I use form=SQLFORM.factory(db.person) to insert a person, I don't get any
error.
I am using web2py version 2.0.9
Kind regards,
Annet.
--