2017-04-11 2 views
1

J'essaie ceci: tal:define="terms python:context.portal_vocabularies.getVocabularyByName('a_vocabulary').items()"Plone: ​​obtenir le vocabulaire dans un modèle de page

et le résultat est Unauthorized: You are not allowed to access 'portal_vocabularies' in this context

Toute idée comment obtenir mon vocabulaire dans un modèle de page?

(.. Il travaille pour les utilisateurs authentifiés L'erreur est seulement pour anonyme)

+0

Vous aurez plus de chance d'obtenir des réponses en postant sur notre forum, community.plone.org, bien que j'ai posté un lien sur le forum à votre question ici –

Répondre

2

Je ne sais pas c'est le plus facile ... Ajout d'une vue du navigateur:

class AVocabulary(BrowserView): 
    def __call__(self): 
     terms = self.context.portal_vocabularies.getVocabularyByName(
      'a_vocabulary').items() 
     res = [(t[0], t[1].title) for t in terms] 
     return res 

c'est public

<browser:page 
    name="get_a_vocabulary" 
    for="*" 
    permission="zope2.View" 
    class=".views.AVocabulary" 
    /> 

et cela fonctionne:

tal:define="options python:context.restrictedTraverse('get_a_vocabulary')"