Plone:在页面模板中获取词汇

时间:2017-04-11 11:42:59

标签: plone plone-4.x

我试试这个:tal:define="terms python:context.portal_vocabularies.getVocabularyByName('a_vocabulary').items()"

结果是 Unauthorized: You are not allowed to access 'portal_vocabularies' in this context

知道如何在页面模板中获取词汇量吗?

(它适用于经过身份验证的用户。该错误仅适用于匿名用户。)

1 个答案:

答案 0 :(得分:2)

不确定这是最简单的...添加了浏览器视图:

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

它是公开的

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

它正在运作:

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