On Sat, Aug 30, 2008 at 10:18 AM, shday <[EMAIL PROTECTED]> wrote:
>
> Thanks Chris, that worked great!
>
> Here's my new class:
>
> class MyTableForm(widgets.TableForm):
> params = ['extra_template_vars']
> extra_template_vars = {}
>
> def update_params(self, params):
> params.update(params.get('extra_template_vars', {}))
> super(MyTableForm, self).update_params(params)
>
> Updated controller code:
>
> http://paste.turbogears.org/paste/5592
>
> I may move the form instantiation out of the controller now also.
>
In fact this is something you should always do, as widgets are supposed to
be reusable. In theory you should have only one instance of each form and
render it with different values.
> Cheers,
>
> Steve
>
>
> On Aug 30, 10:14 am, Christopher Arndt <[EMAIL PROTECTED]> wrote:
> > Hi,
> >
> > shday schrieb:
> >
> > > I'd like to be able to access arbitrary template variables (passed
> > > from the controller) from within my custom form template.
> >
> > Accessing arbitrary template values in widget templates is not possible,
> > IMHO, but you can provide selected values from the template to your
> widgets.
> >
> > > Is there a way to access "site" from a custom form template? What
> > > about accessing "values" directly?
> >
> > > What am I trying to do? I'm trying to change the look of a form based
> > > on the value of "site". My work-around is to use separate templates:
> >
> > Make a form widgets subclass that accepts an additional parameter, e.g.
> > "extra_template_vars" and then when you display the widget in the
> > template do:
> >
> > ${form.display(value, extra_template_vars=dict(site=site, foo=bar, ..))}
> >
> > Then in the form widget class provide an "update_params" method like
> > this (untested):
> >
> > class MyFormWidget(widgets.Form):
> > params = ['extra_template_vars']
> > extra_template_vars = {}
> >
> > def update_params(self, params):
> > params.update(params.get('extra_template_vars', {})
> > super(MyFormWidget, self).update_params(params)
> >
> > HTH, Chris
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---