[Zope3-Users] set_before_add

mats.nordgren mats at ronin-group.org
Fri Oct 14 10:04:53 EDT 2005


On Fri, 14 Oct 2005 15:36:09 +0200, gnotari wrote
> I'm at loss:
> 
> I'm replicating the example at cap. 14.3 of Philipp's (Worldcookery) 
> book. It's all about auto-assigning names to object being added to containers.
> 
> After much tinkering, it does seem to me that this directive
> 
> <browser:addform
>       ...
>       ...
>       set_before_add="id"
> >
> 
> is not working at all.
> I throughly checked my NameChooser derived class, and verified it 
> works if I make it return some static "name".
> 
> But if I set my NameChooser to use the new object's id attribute (as 
> per example) and try to Add the object, I'm not asked for the "id" 
> and immediately get the error "An empty name was provided. Names 
> cannot be empty."
> 
> Any clue about what's happening?
> 
> ciao
> Guido
> 
> _______________________________________________
> Zope3-users mailing list
> Zope3-users at zope.org
> http://mail.zope.org/mailman/listinfo/zope3-users

Guido,

I just tried to have Zope auto assign the name of an object taking the
TextLine field 'title' as name.  It worked just fine.  Remember NameChooser
has to be implemented on the container, not the object.  The set_before_add
should be added to the addform of the object itself.

I wrote a small howto on NameChooser at http://counterfate.servebeer.com

Replace the part in the chooseName function with:

if not name:
  name = object.id
  return name

Sincerely,

gnosis 


More information about the Zope3-users mailing list