On Monday, March 7, 2011 2:56:18 PM UTC-8, Ben Bangert wrote:
>
> On Mar 7, 2011, at 2:27 PM, Jens Hoffrichter wrote:
>
> > Luckily, I knew that from my more recent Pylons experiences, and I knew I
> had to use webhelpers.html.literal() for that. But how to get the webhelpers
> into the template (I was using the default Chameleon templates here)? In the
> normal Pylons Mako templates I have always h and c available, where c isn't
> necessary in pyramid anymore, as I have the returned values from the view
> there. After quite a bit of digging around in the pyramid (which has 0 on
> that topic), and chameleon docs (which has mostly BNF as a documentation, as
> far as I saw), I found out that I could use something like this inside the
> template:
> >
> > <div id="main" tal:define="h import:choosecourse.helpers">
> >
> > I added a helpers.py, where I imported all my usual webhelpers into it,
> and then had literal available in the template.
>
> There is a cookbook entry for this:
> http://docs.pylonsproject.org/projects/pyramid_cookbook/dev/templates.html
>
Chris M. linked to that page, too, so I'm wondering if that's the preferred
way to add `h` to templates' global namespace. I did it like this, which
seems a little cleaner to me:
# myapp/__init__.py
from myapp import helpers
def main(global_config, **settings):
# ...
def renderer_globals_factory(system):
return dict(
h=helpers,
# ...
)
config = Configurator(
settings=settings,
renderer_globals_factory=renderer_globals_factory,
)
Pretty much the same, but no need to think about events.
Ref:
http://docs.pylonsproject.org/projects/pyramid/1.0/narr/hooks.html#adding-renderer-globals
--
You received this message because you are subscribed to the Google Groups
"pylons-discuss" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/pylons-discuss?hl=en.