[Twisted-web] Nevow IResource trouble
Remi Cool
mailinglists at smartology.nl
Fri Nov 18 08:41:59 MST 2005
Remi Cool wrote:
>Hello, after batteling with XMLRPC and getting nevow to put something on
>the screen, I got stuck implementing a livepage and webform example.
>
>After changing the implements to inevow.IResource in httpResource, I got
>a message about a missing locateChild method (is that about the same as
>the getChild method in a twisted web resource?) ... I've created one,
>but I'm not shure if it's correct.
>
>Bottomline is I can't get it to work, not from the code and not from a
>resource file ... what's wrong with this code?
>
>
>
I was using twisted.web.static and not nevow.static and that mistake was
responsible for the cannotAdapt errors.
The webforms example worked after changing the ISimpleMethod class to:
class ISimpleMethod(TypedInterface):
def simple(self, name=String(description="Your name."),
age=Integer(description="Your age.")):
"""Simple
Please enter your name and age.
"""
simple = annotate.autocallable(simple)
The Livepage example also needed a little touchup ...
class Live(LivePage):
addSlash = True
docFactory = loaders.stan(
tags.html[
tags.head[livepage.glue],
tags.body[
tags.ol[
tags.li(onclick="server.handle('greeter', this.name)",
name="one")["One"],
tags.li(onclick="server.handle('greeter', this.name)",
name="two")["Two"],
tags.li(onclick="server.handle('greeter', this.name)",
name="three")["Three"]
]
]
])
def __init__(self):
livepage.LivePage.__init__(self)
def handle_greeter(self, ctx, value):
return livepage.alert("you've clicked %s" % value)
Most important was the tags.head[livepage.glue] addition.
Now that everything works, I can go on to the next step (pfew) ...
calling the client from the server with livepage, sessions,
authentication and experimenting with nufox XUL.
- Remi -
More information about the Twisted-web
mailing list