Additions and Corrections
Every book on an Open Source Framework needs website with a page to collect information anything that's changed since the book came out, and any typos or other glitches that might have made it into the book. There's a user contributed, user editable version of the chapter adendum available at: the Google Group we've set up for discussion of the book.
Part I: TurboGears Fundamentals
Chapter 1. Introduction to TurboGears
Chapter 2. Welcome to TurboGears
- Page 17: Listing at bottom missing the line that asks about TurboGears Identity (but it does appear in the next listing on page 18).
Chapter 3. The Architecture of a TurboGears Application
Part II: Building a Simple TurboGears Application
Chapter 4. Creating a Simple Application
- Page 47: The expose method has a typo in the project name , it should read @expose(template="bookmarker.templates.list")
- Page 47: Missing "s" in the code, it should read "return dict(bookmarks=b)"
- Page 56: Missing an "m" in tg-admin sql create. It should read: You can define the columns... and generate them whenever you run tg-admin sql create"
Chapter 5. Enhancing Our Bookmark Application
- Page 53: the :memory command SQLlite URI should not have a space after the colon. So the sentence should read: "we can use :memory to indicate that...
- Page 60: Three extra h's added to the end of the last line of code. It should read: RelatedJoin('Categories')
- Page 63: This website is inaccurately linked as: www.turbo-gearsbook.com/code
- Page 69:Typo in code: "b = model.Bookmarks.get(parameter_1)" We already imported Bookmarks directly, so the code should read "b = Bookmarks.get(parameter_1)"
- Page 69: Typo in the paragraph after the listing where "form" was replaced by "phone." The sentence should read: "we set the widgets in our form...
- Page 71: Typo in code: double-quotes should surround a space, but they surround a newline instead.
- Page 73: One of the quote marks is missing in the code, so it reads b = " instead of b = ""
- Page 76: Typo in code: options.append(category.ID, category.categoryName)- parens missing. Append takes one argument, in this case a simple two element tuple, so the code should read: options.append((category.ID, category.categoryName))
Part III: Exploring a Real World TurboGears Application
Chapter 6. Exploring More Complex Models in Fast Track
- Jonathan LaCour's name is misspelled as LeCour