The book's example for "full CRUD" def data(): return (form=crud())
doesn't set the proper links from .../data/select/<table> to .../data/read/<table>/<id> they instead go to .../read/<table>/<id> This patch fixes the issue: --- a/gluon/tools.py Fri Jan 28 09:54:47 2011 -0600 +++ b/gluon/tools.py Fri Jan 28 19:27:06 2011 +0100 @@ -2668,7 +2668,7 @@ elif args[0] == 'create': return self.create(args(1)) elif args[0] == 'select': - return self.select(args(1),linkto=self.url('read')) + return self.select(args(1),linkto=self.url(args='read')) elif args[0] == 'read': return self.read(args(1), args(2)) elif args[0] == 'update':