Yes, it's supposed to work. Both db.sometable.anyfield.table and db.sometable.anyfield._table refer to the db.sometable object; and db.sometable.anyfield.tablename and db.sometable.anytable._tablename refer to the name of the db.sometable object (i.e., the string "sometable"). The ._table and ._tablename versions are documented at the end of this section: http://web2py.com/books/default/chapter/29/6#Record-representation, but not the .table and .tablename versions.
Also, both db.sometable._id and db.sometable.id refer to the id field of the table, even if the id field is named something other than "id" (._id is briefly mentioned here<http://web2py.com/books/default/chapter/29/6#Recursive-selects>, but I don't think .id is documented). Anthony On Tuesday, June 19, 2012 9:15:21 AM UTC-4, Cliff Kachinske wrote: > > > It seems to work, because > > print db.sometable.id.table > > returns 'sometable'. > > But I can't find any documentation for it. Is this how things are > supposed to work, or am I just seeing a side effect? > > Thanks > Cliff Kachinske >

