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