It is not terribly difficult to create manual forms, even if you want basic validation and a standardized look and feel. For example,
CMFPlone/skins/plone_forms/search_form.pt contains a good example of the usual form markup and patterns. However, creating forms from scratch can be quite time-consuming. Luckily, there are ways to automatically create forms.
In the previous chapter, we saw how to use
zope.formlib to create portlet add and edit forms from an interface describing the configurable aspects of that portlet. These are just special cases of the forms that can be created using the tools in the formlib package.
To demonstrate formlib more generally, we will use a page form to create an enquiries page for the ...