In the previous chapter, we learned how to create content types with custom views. When rendering a view, the current content item was accessed through the
context variable. Because of the way in which the views were registered in ZCML, they could make the assumption that their context provided a particular interface, through which it could be inspected or modified.
Not all pages in an application will be tied to a specific content type, however. In this chapter, we will consider templates and forms more generally, and learn how to create views that are not registered for a particular type of context. We will also consider how to deal with form submission, and how to auto-generate forms using