[Twisted-web] I feel like I have a path one-off error here somewhere...
exarkun at twistedmatrix.com
exarkun at twistedmatrix.com
Thu Aug 27 13:39:51 EDT 2009
On 05:24 pm, markscottwright at gmail.com wrote:
>I'm trying to set up a dynamic tree of resources - a list of resources
>that drill-down into individual resources. But for some reason,
>getChild never gets called on my root resource. The following code
>will output a list of ids, but "/id" doesn't call getChild. What am I
>doing wrong?
>
>from twisted.web import server, resource
>
>class Child(resource.Resource):
>
> def __init__(self, childid):
> self.childid = childid
>
> def render_GET(self, request):
> return "<h1>" + self.childid + "</h1>"
>
>class Root(resource.Resource):
>
> def render_GET(self, request):
> pg = ""
> for i in range(10):
> pg += '<p><a href="/' + str(i) + '">' + str(i) + "</a></p>"
> return pg
>
> def getChild(self, path, request):
> return Child(path)
>
>if __name__ == "__main__":
> from twisted.internet import reactor
>
> root = resource.Resource()
> root.putChild('', Root())
With this resource hierarchy set up, here's what you should expect:
- / will call root.getChild("")
- /id will call root.getChild("id")
- /foo/bar will call root.getChild("foo").getChild("bar")
So, perhaps you want to make root an instance of Root instead of an
instance of Resource with a "" child of a Root instance?
Jean-Paul
More information about the Twisted-web
mailing list