我有这个python脚本旨在重建特定内容类型的目录,但是当我在浏览器中访问它的网址时,我得到的权限不足'即使以管理员身份登录我怎么能运行这样的东西?
import plone.api
catalog = plone.api.portal.get_tool(name='portal_catalog') for brain in catalog(portal_type='Resource'):
obj = brain.getObject()
catalog.catalog_object(obj)
答案 0 :(得分:6)
您不需要 plone.api 。因此删除plone.api导入并执行:
catalog = context.portal_catalog
答案 1 :(得分:3)
ScriptPython是受限制的Python,这意味着您无法导入所需的每个Python模块。这可能是你不能在ScriptPython中使用plone.api的原因。但是你可以在那个脚本中导入getToolByName并获得像portal_catalog这样的工具。
from Products.CMFCore.utils import getToolByName
catalog = getToolByName('portal_catalog')
答案 2 :(得分:1)
如果在文件系统中创建脚本,则可以运行。
bin/instace run your_script
但在你的情况下,你不需要导入plone.api
ZMI中的Plone对导入内容有很多限制。
在官方plone网站上查看有关portal_catalog的更多信息 Documentation Query