I realize this probably isn't the solution that you're looking for,
but I when I want a different form look (for instance having the form
label be a block element, instead of 'inline' like how the table
forces), I just create a subclass of the form. For example:
from web import form
class LiForm(form.Form):
def render(self):
out = '<ul class="li_form">'
out += self.rendernote(self.note)
for i in self.inputs:
out += ' <li><label for="%s">%s</label>' % (
i.id,
i.description)
out += '<span id="note_%s">%s</span></li>\n' % (
i.id,
self.rendernote(i.note))
out += '<li>'+i.pre+i.render()+
i.post +'</li>'
out += "</ul>"
return out
It would be cool if we could support different form renderings
natively -- django does this as methods on the form instance -- but
this works for now.
Cheers,
Justin