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
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
