On Mar 6, 2004, at 5:03 PM, Stephen Waterbury wrote:
Thanks, James -- I see now, and I appreciate your patience! :) I must say that for me this is rather non-intuitive.
Well, how would you like it to work? It needs to support contextual data. Consider the following (actually working) example, which in my experience is more common: from nevow import inevow, rend class User: __implements__ = inevow.IContainer allowableAttrs = ('name', 'password') def __init__(self, name, password): self.name=name self.password=password def child(self, context, name): if name in self.allowableAttrs: return getattr(self, name) class MyPage(rend.Page): def data_users(self, context, data): return (User('James Knight', 'twiddle'), User('Matt Goodall', 'twoddle'), User('Bogus User', '1')) def data_title(self, context, data): return "My Title" docFactory = rend.xmlstr( """<ul nevow:data="users" nevow:render="sequence"> <li nevow:pattern="item"> Name: <span nevow:data="name" nevow:render="string" /> Password: <span nevow:data="password" nevow:render="string" /> </li> </ul>""") from twisted.application import service,internet from nevow import appserver application = service.Application("disktemplates") site = appserver.NevowSite(MyPage()) internet.TCPServer(8080, site).setServiceParent(application)