Is it possible to override just a template for a widget, without
creating a whole new Widget, WidgetFactory, Field and associated
interfaces? I have whole modules full of empty classes just to get to
a special template, which it seems I ought to be able to do with a
<z3c:objectWidgetTemplate> directive , but no matter how I try I can't
get no satisfaction.
In my zcml, I have:
<z3c:objectWidgetTemplate
mode="display"
template="templates/SpeciesList.pt"
widget="z3c.form.interfaces.IMultiWidget"
schema="zope.schema.interfaces.IList"
/>
and the template is:
<div tal:content="view/oops">
Body
</div>
(and "oops" is not a valid attribute, so I fully expect an error here)
When I test my view:
>>> f=DistributionView(None,request)
>>> f.update()
>>> f.widgets.keys()
['rowCount', 'map', 'speciesCount', 'speciesList', 'dateRange',
'dataSources']
>>> w=f.widgets['speciesList']
>>> w.__class__
<class 'z3c.form.browser.multi.MultiWidget'>
>>> w.field.__class__
<class 'zope.schema._field.List'>
>>> print w.render()
<div id="form-widgets-speciesList"
class="multi-widget required">
</div>
_______________________________________________
Product-Developers mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/product-developers