[Twisted-Python] woven headache
dp at twistedmatrix.com
Mon Dec 16 02:32:59 EST 2002
A List of Links into HTML
The easiest way to do this is to use the List and Anchor widgets to
handle the list and a string, respectively. If you had an RPY that
looked like this (the main model is a list of strings):
from twisted.web.woven import page
resource = page.Page(['http://www.google.com', 'http://www.foo.com'],
Your template file would look like this:
<ul view="List" model=".">
<!-- Use the current model as this node's model.
Use the List widget in widgets.py to turn this model into html. -->
<!-- The pattern node will be copied once for each element in the
by the List widget. Each copy will have a model= attribute with
the index of the current list item set. When woven recurses into
the new, copied nodes, the list element will be pushed onto the
<a view="Anchor" model="." />
<!-- When woven descended into the li node, it pushed a string onto
the model stack. We now want to render that string into HTML
using the Anchor widget. We specify ".", the top of the model stack.
There you go.
Unfortunately the base Anchor widget is pretty dumb. It just takes a
string model, and sets the node href= to the string, and adds a text
node to the <a> node. Next installment: writing a custom widget that
does fancier stuff.
More information about the Twisted-Python