[Zope3-Users] z3c.form - how to set single default values from
another object?
Stephan Richter
srichter at cosmos.phy.tufts.edu
Wed Feb 20 13:50:28 EST 2008
On Wednesday 20 February 2008, Hermann Himmelbauer wrote:
> 1.3) From an object attribute (don't really understand what this Step is
> for): Seems also not possible as there's once again no way to register a
> named adapter here and therefore the absence of "value1" as object
> attribute will lead to an error:
>
> adapter = zope.component.queryMultiAdapter(
> (self.context, self.request, self.form, self.field, self),
> interfaces.IValue, name='default')
You almost got it. This is the approach that I envisioned. You basically have
to provide this adapter to provide a default value. From
z3c.formdemo.message.browser, line 27:
DefaultDate = widget.ComputedWidgetAttribute(
lambda adapter: datetime.date.today(),
field=interfaces.IHelloWorld['when'], view=IAddForm)
Then register the adapter as follows:
<adapter
factory=".browser.DefaultDate"
name="default" />
You can create any function you like to compute the dynamic default value. The
`adapter` argument has access to the context, request, form, etc.
Regards,
Stephan
--
Stephan Richter
Web Software Design, Development and Training
Google me. "Zope Stephan Richter"
More information about the Zope3-users
mailing list