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

Chapter 7. Real Life Controllers and Views for Fast Track's Dashboard Page

Chapter 8. RSS, Cookies, and Dynamic Views in Fast Track

Chapter 9. Ajax and Fast Track Projects

Part IV: SQLObject and TurboGears Models

Chapter 10. SQLObject Basic

Chapter 11. Mastering SQLObject

Chapter 12. Customizing SQLObject Behavior

Part V: TurboGears View Technologies

Chapter 13. Dynamic Templates with Kid

Chapter 14. Creating Better JavaScript with MochiKit

Chapter 15. Effective Ajax with MochiKit

Chapter 16. TurboGears Widgets: Bringing CSS, XHTML, and JavaScript Together in Reusable Components

Part VI: CherryPy and TurboGears Controller Technologies

Chapter 17. CherryPy and TurboGears Decorators

Chapter 18. TurboGears Deployment

Part VII: TurboGears Extras

Chapter 19. The TurboGears Toolbox and Other Tools

Chapter 20. Internationalization

Chapter 21. Testing a TurboGears Application

Chapter 22. TurboGears Identity and Security

Appendix A: SQLAlchemy