On Wednesday 30 June 2010, Manuele wrote:
> all'interno della definizione di un content type del tipo:
>
> class mycontent(base.ATCTContent):
>       [omissis]
>
> che differenza c'è tra il definire il parametro schema in questi due modi?
>
> 1) modo "classico"
>
>       schema = mycontentSchema
>
> 2) modo "alternativo"
>
>       def __init__(self, oid, **kw):
>               base.ATCTContent.__init__(self, oid, **kw)
>               self.addSchema()
>
>       def addSchema(self, schema=mycontentSchema):
>               self.schema = schema
>
> sproloquio di testo a parte ci deve essere una differenza concettuale
> che mi sfugge perché nel secondo caso al momento di istanziare un nuovo
> documento non compaiono i campi definiti nello schema e se provo a
> salvare lo stesso un documento ottengo questo errore:
> ...

Di fatto è  uguale a quello che è stato fatto sopra. 
Il problema secondo me sta altrove. 

Perchè fai una cosa del genere 'addSchema'? 
Per cambiare lo 'schema' con gli oggetti instanziati?

Se lo fai devi re-inizializzare l'oggetto stesso, l'errore infatti dice che 
non trova un accessore:

    Module Products.PageTemplates.ZRPythonExpr, line 49, in __call__
     - __traceback_info__: accessor()
    Module PythonExpr, line 1, in <expression>
    TypeError: 'NoneType' object is not callable

I metodi 'get' e 'set' sono generati da Archetype quindi penso che debba 
essere chiamato il metodo _updateSchema ogni volta che cambi lo 'schema':

        def addSchema(self, schema=mycontentSchema):
                self.schema = schema
                self._updateSchema()

-- 
Riccardo Lemmi                           Email:   [email protected]
Reflab S.r.l. - Plone Design, Development and Consulting
Phone: +39 349 4620820                         http://www.reflab.com

Attachment: signature.asc
Description: This is a digitally signed message part.

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

Rispondere a