I just got the same error
<type 'exceptions.KeyError'> '_id'
Traceback (most recent call last):
File "/home/bruce/projects/web2py/gluon/restricted.py", line 204, in
restricted
exec ccode in environment
File "/home/bruce/projects/web2py/applications/demo/controllers/appadmin.py"
<http://localhost:8000/admin/default/edit/demo/controllers/appadmin.py>, line
466, in <module>
File "/home/bruce/projects/web2py/gluon/globals.py", line 172, in <lambda>
self._caller = lambda f: f()
File "/home/bruce/projects/web2py/applications/demo/controllers/appadmin.py"
<http://localhost:8000/admin/default/edit/demo/controllers/appadmin.py>, line
313, in update
if form.accepts(request.vars, session):
File "/home/bruce/projects/web2py/gluon/sqlhtml.py", line 1088, in accepts
hideerror=hideerror,
File "/home/bruce/projects/web2py/gluon/html.py", line 1807, in accepts
status = self._traverse(status,hideerror)
File "/home/bruce/projects/web2py/gluon/html.py", line 749, in _traverse
newstatus = c._traverse(status,hideerror) and newstatus
File "/home/bruce/projects/web2py/gluon/html.py", line 749, in _traverse
newstatus = c._traverse(status,hideerror) and newstatus
File "/home/bruce/projects/web2py/gluon/html.py", line 749, in _traverse
newstatus = c._traverse(status,hideerror) and newstatus
File "/home/bruce/projects/web2py/gluon/html.py", line 749, in _traverse
newstatus = c._traverse(status,hideerror) and newstatus
File "/home/bruce/projects/web2py/gluon/html.py", line 756, in _traverse
newstatus = self._validate()
File "/home/bruce/projects/web2py/gluon/html.py", line 1572, in _validate
(value, errors) = validator(value)
File "/home/bruce/projects/web2py/gluon/validators.py", line 549, in __call__
elif str(rows[0]._id) != str(self.record_id):
File "/home/bruce/projects/web2py/gluon/dal.py", line 5466, in __getattr__
return self[key]
File "/home/bruce/projects/web2py/gluon/dal.py", line 5457, in __getitem__
return dict.__getitem__(self, key)
KeyError: '_id'
with default auth_user table and some extra_fields added