Hi,

On 5 March 2010 08:17, David Glick <[email protected]> wrote:
> I have a z3c.form form that overrides its getContent method based on a
> property of the current authenticated member.  That is, the data being
> edited by the form depends on which user is logged in.

Okay.

> This form also has a NamedImage field (from plone.namedfile), which
> displays a preview of the current image by traversing to ++widget++logo
> on the form (logo is the name of the field).

Right.

> But this doesn't work in this case, because in order to traverse to a
> widget, the code that handles this traversal (in
> plone.z3cform.traversal) must call the form's update method, which in
> turn calls updateWidgets.  But update also relies on being able to get
> the form's data, so it calls getContent, which fails because there is no
> authenticated member yet, since authentication happens after traversal.

Ouch.

> Any ideas about how I can get out of this pickle?

Not really. You have to do update(), otherwise you don't have enough
information on the widget. In a lot of cases, the fields/widgets
aren't even fully konwn until update() is done.

Could you replace your getContent() return value with some kind of
proxy that lazily looks up the user?

Martin

_______________________________________________
Product-Developers mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/product-developers

Reply via email to