[Twisted-web] How to nest LiveElements? (getting a MissingRenderMethod error)

kgi iacovou at gmail.com
Fri Dec 1 08:49:49 CST 2006


On Friday 01 December 2006 16:20, Jean-Paul Calderone wrote:
> On Fri, 1 Dec 2006 15:35:34 +0200, kgi <iacovou at gmail.com> wrote:
> All Element renderers _must_ use renderer().  All Fragment/Page renderers
> _must_ use the "render_" prefix.  All Athena callables _must_ use expose().
>
> No other approach will work at all.

Hi JP; thanks for your reply. That has got it working!

Can I ask, what's the high-level, hand-wavey, fuzzy-feeling distinction 
between a Page and an Element?

I just think of them both as "things in which I define a docFactory and which 
magically render themselves", which is why I hit this problem: I had assumed 
that whichever I should use should be applicable to both Pages and Elements, 
since in both cases I was defining stan in a docFactory.

I had tried various combinations of using ("render_"|renderer()) and returning 
(ctx.tag[elem]|elem), but it never occurred to me to use different syntax for 
Pages and Elements.

> >   from nevow.page import renderer
> >   def innerWidget ( self, request, tag ):
> >        ...
> >        return elem
> >   renderer(innerWidget)
>
> Like the other examples, you could return ctx.tag[elem] here.

Do you mean, tag[elem], since these render methods receive (request,tag) 
rather than (ctx,data)?

Thanks,

Ricky



More information about the Twisted-web mailing list