On the debugging of page templates
... and form controllers and macros and webforms ...
Try embedding something like this in your code:
<dl class="collapsible inline collapsedOnLoad"> <dt class="collapsibleHeader">Title</dt> <dd class="collapsibleContent"> <span tal:replace="structure python: here.printRequest(request, errors)"/> </dd> </dl>
and supply the necessary printRequest somewhere in your code or as a script:
def printRequest (self, request, errors):
req = dict(request)
buf = StringIO()
buf.write ("<div>")
buf.write ("<p><b>request:</b></p>")
buf.write ("<ul>")
for k, v in req.iteritems():
buf.write ("<li>%s: %s</li>" % (k, v))
buf.write ("</ul>")
buf.write ("<p><b>errors:</b></p>")
buf.write ("<ul>")
for k, v in errors.iteritems():
buf.write ("<li>%s: %s</li>" % (k, v))
buf.write ("</ul>")
buf.write ("</div>")
return buf.getvalue()