Programación de scripts
How To para programación de scripts
- Evitar la adquisición al obtener un objeto
- Buscando por internet nos indican que utilicemos "aq_explicit" en cualquier objeto. Yo he podido comprobar que no funciona, finalmente me funciona este código:
-
objeto=getattr(carpeta_padre.aq_inner.aq_explicit,'mi_objeto_hijo')
- Redirigir Plone / Zope
-
return context.REQUEST.RESPONSE.redirect('url_carpeta_u_objeto') - Obtener un objeto a partir de la URL o ruta del objeto
-
objeto= context.restrictedTraverse('carpeta/mi_objeto') - Crear un objeto desde un script
- Puede existir peculiaridades, tras crear el objeto puede que el catálogo no lo indexe. Además, en los archetypes es necesario llamar a una funcion para marcar que el objeto no es temporal y se ha creado. Por ello recomiendo el siguiente fragmento de código
new_id='prueba_carpeta' dest_folder.invokeFactory('Folder',new_id) new_folder=getattr(dest_folder.aq_explicit,new_id) if new_folder: new_folder.setTitle('Nuevo titulo') new_folder.unmarkCreationFlag() new_folder.reindexObject() - Ejecutar un script como manager u otro rol
- Realmente se puede ejecutar con cualquier rol. Sólo hay que indicarlo en la pestaña "proxy", pero, si el script está en el sistema de archivos es necesario indicarlo en el fichero .medata mediante:
[default] proxy=Manager,Anonymous
-

