Giacomo Zanobini ha scritto:
Il 23/03/2010 15.35, Yuri ha scritto:
oggetto.Creator() idem per absolute_url
macchecavolo!
avevo provato:

    * oggetto.Creator
    * oggetto.getCreator()
    * oggetto.Creator[0]
    * oggetto.Creator.getObject()


...... mancava giusto quello.... ma non mi sarebbe _mai _venuto in mente di provarlo


vai in portal_catalog, così vedi i nomi degli indici per la ricerca e i metadata che puoi chiamare come .<nome> (esempio brain.Creator) sui risultati dell'interrogazione al catalogo.

Se invece vuoi il metodo dell'oggetto, usi Creator().

Il primo metodo prende i dati dal catalogo, e ha memorizzato il risultato di quella chiamata al momento dell'indicizzazione. Così risulta più veloce, perché torna una stringa invece di fare una chiamata ad un oggetto Plone.

quindi:

results = context.portal_catalog(indice=valore, indice1=valore) etc etc, torna una lista di "brains" (su cui cicli con for result in results:), sui quali puoi chiamare .<nome_metadata> senza bisogno di fare una getObject. Se invece vuoi l'oggetto vero e proprio, fai oggetto = result.getObject().

Nota: Creator è un campo dei metadati dell'oggetto plone (quelli che trovi in edit -> ownetship) che è solo un stringa che viene impostata di default con il valore dell'account che l'ha creato. Non indica il possessore reale dell'oggetto.

Se a te interessa solo cambiare la scritta e non il reale possessore, puoi fare un .setCreator(value='pippo') sull'oggetto. Il proprietario "Zope" rimane sempre lo stesso.

Quindi se sei sicuro che Creator corrisponde al proprietario zope, usalo, altrimenti usa la chiamata per determinare il possessore, la trovi sempre nel template ownership_form.

_______________________________________________
Plone-IT mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html

Rispondere a