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@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 
_______________________________________________
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users

Reply via email to