2006/1/7, Ksenia Marasanova <[EMAIL PROTECTED]>:
> Hey,
>
> I am trying to construct template property of a widget based on widget
> parameters, in __init__ method:
>
> class MyWidget(Widget):
>     def __init__(self, *args, **kwargs):
>         # just use textarea template for testing
>         kwargs['template'] = """
>         <div xmlns:py="http://purl.org/kid/ns#"; py:strip="True">
>         <textarea name="${widget.name}" id="${widget.name}"
> class="textarea_field"
> py:attrs="widget.attrs">${widget_value}</textarea>
>        <span class="field_error"
> py:if="widget_error">${str(widget_error)}</span>
>         </div>"""
>        super(MyWidget, self).__init__(*args, **kwargs)
>
> But it doesn't work, here is the end of the traceback that looks relevant:
>   File "[...]/turbogears/widgets/base.py", line 129, in insert
>     self.template)
>   File "[...]/turbogears/view.py", line 61, in transform
>     engine, template = _choose_engine(template)
>   File "[...]/turbogears/view.py", line 32, in _choose_engine
>     raise KeyError, \
> KeyError: 'Template engine <div xmlns is not installed'

Okay, I see it finally. I was using widgets devcast as a manual, but
it looks like since changeset 437 template cannot be assigned to a
widget instance, it can only be declared as a class variable (and
processed in __classinit__).
Never mind.

--
Ksenia

Reply via email to