[Plone-conosur] Crear contenido desde un script

Emanuel Sartor emanuel en menttes.com
Mar Ago 21 21:21:57 UTC 2007


On Tuesday 21 August 2007 15:23:49 Santiago Videla wrote:
> Hola lista,
>
> tengo un problema que no logro solucionar.
>
> Necesito importar una serie de datos desde un archivo cvs y crear los tipos
> de contenido en plone.
> en un script, estoy usando una cosa asi:
>
> context.invokeFactory(tipo,**atd)
>
> 'atd' es un diccionario con todos los campos y valores que tiene el 'tipo'
> de contenido
>
> Eso parece andar, por otro lado el 'tipo' de contenido tiene definido el
> metodo
>
>     def at_post_create_script(self):
>
> que se ejecuta despues de que se crea una instancia (para hacer algo en el
> contendor).
>
> El problema es que cuando creo una instancia "a mano" desde la interfaz de
> plone anda todo bien, pero cuando corro el script y se crea la instancia
> con invokeFactory, el metodo at_post_create_script no se ejecuta. Despues,
> cuando entro a editar la instancia creada desde el script (solo la primera
> vez que entro) se ejectua el metodo. Como si recien ahi se terminara de
> crear la instancia.
>
> alguna sugerencia para hacerlo todo en un solo paso??

Santiago:

Tal vez puedas modificar tu script para hacer (en pseudocódigo):

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

Esto llama explícitamente el método at_post_create_script.

Saludos,
Emanuel




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