[Plone-conosur] Crear contenido desde un script

Emanuel Sartor emanuel en menttes.com
Mar Ago 21 22:40:34 UTC 2007


On Tuesday 21 August 2007 18:51:34 Santiago Videla wrote:
> Hola emanuel,
> gracias por responder
>
> el problema es que cuando se editan por primera vez las instancias creadas
> de la forma
>
> context.invokeFactory(tipo,**atd)
> obj = getattr(context, 'id del objeto creado en la linea anterior')
> obj.at_post_create_script()
>
> Se vuelve a ejecutar el at_post_create_script(), y necesito que se ejcute
> una sola vez por cada instancia.
>

Santiago:

Entiendo el problema.  Te tiro un dato que te puede ayudar, aunque no estoy 
seguro: los objetos AT tienen un flag para indicar si fueron creador 
completamente o no, supongo que lo que está pasando es que invokeFactory no 
está poniendo ese flag en True y por eso el método at_post_create_script se 
corre cuando lo editás y no antes.

Podés ver un poco de código en 
http://dev.plone.org/archetypes/browser/Archetypes/tags/Archetypes-1.4.4-final/BaseObject.py#L673

Por lo que yo probaría:

context.invokeFactory(tipo,**atd)
obj = getattr(context, 'id del objeto creado en la linea anterior')
obj.at_post_create_script()
obj.unmarkCreationFlag()

Saludos,
Emanuel




Más información sobre la lista de distribución Plone-ConoSur