Background: how grok.View and macros interact¶
The template attribute and the macro shortcut convention¶
In the case of grok.View
views, they subclass the Zope 3 BrowserPage
objects which provide an attribute template
, which is the associated page
template. The associated page template in turn has got an attribute macros
,
which is a dictionary containing all the macros defined in the page template
with their names as keys (or None
).
This means, that you can also reference a macro of a grok.View
using:
context/<view-name>/template/macros/<macro-name>
Grok shortens this path for you by mapping the macros
dictionary keys to
the associated grok.View
. If you define a macro mymacro
in a template
associated with a grok.View
called myview
, this view will map
mymacro
as an attribute, so that you can ask for the attribute mymacro
of the view, where as it is in fact an attribute of the associated template.
Such, you can write in short for the above pattern:
context/<view-name>/macros/<macro-name>
View names always start with the ‘eyes’ (@@
) which is a shortcut
for ++view++<view-name>
.