[Twisted-web] Cannot render a LivePage more than once
Juanjo Conti
jjconti at gmail.com
Thu Jul 9 14:27:54 EDT 2009
I solved the problem redefining child_ter and child_graph as follow:
def child_ter(self, ctx):
return TerPage()
def child_graph(self, ctx):
return GraphPage()
Thanks,
2009/7/9 Juanjo Conti <jjconti at gmail.com>:
> I've actually realised that the problem is happening when I use this IndexPage:
>
> class IndexPage(rend.Page):
>
> def __init__ ( self, *args, **kwargs ):
> rend.Page.__init__ ( self, *args, **kwargs )
> self.ter = TerPage()
> self.graph = GraphPage()
>
>
> docFactory = loaders.stan (
> T.html [ T.head ( title = 'Indice' ),
> T.body [ T.h1 [ "Pagina principal" ],
> T.p [ "Ir a ",
> T.a ( href = 'ter' ) [ "TER" ],
> " or ",
> T.a ( href = 'grapf' ) [ "graph" ],
> ],
> ]
> ]
> )
>
>
> def child_ter(self, ctx):
> return self.ter
>
> def child_graph(self, ctx):
> return self.graph
>
> from nevow import appserver
> site = appserver.NevowSite(IndexPage())
> reactor.listenTCP(8009, site)
>
> I can reaload the IndexPage, but can't the Terpage or GraphPage.
>
> Thanks,
>
> 2009/7/9 Juanjo Conti <jjconti at gmail.com>:
>> HI! I'm using LivePage from Nevow.Athena like this:
>>
>> class TerPage(LivePage):
>> docFactory = loaders.stan(T.html[
>> T.head(render=T.directive('liveglue')),
>> T.body(render=T.directive('myElement'))])
>>
>> def beforeRender(self, ctx):
>> d = self.notifyOnDisconnect()
>> d.addErrback(self.disconn)
>>
>> def disconn(self, reason):
>> del lectores[hash(self.element)]
>>
>> def render_myElement(self, ctx, data):
>> self.element = TempElement()
>> self.element.setFragmentParent(self)
>> return ctx.tag[self.element]
>>
>> def child_(self, ctx):
>> return TerPage()
>>
>>
>> site = appserver.NevowSite(TerPage())
>> reactor.listenTCP(8009, site)
>>
>> When I load the page for first time, it's rendered ok. But if I hit
>> the reload button or someone access it from other computer, this
>> exception is shown:
>>
>> Cannot render a LivePage more than once.
>>
>> Could you point me the correct way of doing it?
>>
>> Thanks,
>>
>> --
>> Juanjo Conti
>>
>
>
>
> --
> Juanjo Conti
>
--
Juanjo Conti
More information about the Twisted-web
mailing list