2013-07-02 6 views
3

Je suis les essais ici: https://github.com/plone/plone.app.referenceablebehavior/blob/master/plone/app/referenceablebehavior/referenceable.txtLes comportements de dextérité de Plone sont-ils des comportements référençables non référençables?

I ajouté plone.app.referenceablebehavior à Plone 4.3, créé un type TTW et fait référençables:

enter image description here

Ensuite, je crée une instance du type dans le site racine appelée « Mon type d'instance pouvant être référencée », et essayé ce qui suit en mode débogage:

>>> from plone.app.referenceablebehavior.referenceable import IReferenceable 
>>> IReferenceable.providedBy(app.Plone['my-referenceable-type-instance']) 
False 

Je pense que le résultat soit True. Est-ce un bug, ou ai-je oublié quelque chose?

[0] Mon buildout:

[buildout] 
extends = https://raw.github.com/pythonpackages/buildout-plone/master/4.3.x-dev 

[plone] 
eggs += 
    plone.app.referenceablebehavior 

Répondre

4

Dans une session de débogage, vous devez définir le gestionnaire de site local avant de tenter cela. Essayez:

>>> from zope.component.hooks import setSite 
>>> setSite(app.Plone) 

... avant d'essayer de vérifier si IReferenceable est fourni par l'objet. La raison est que Dextérité utilise un descripteur de spécification d'objet qui recherche dynamiquement les interfaces à partir des informations de type d'usine du type, spécifique au site (vous ne pouvez pas récupérer la configuration spécifique au site sans avoir préalablement configuré le site local pour les recherches).

+0

Ça a marché, merci! – aclark

Questions connexes