gpt4 book ai didi

Zope 中的 Python 脚本无法在外部方法中找到函数名称

转载 作者:行者123 更新时间:2023-11-28 21:51:56 26 4
gpt4 key购买 nike

我在 Plone 中获取 Python 脚本以查找外部方法时遇到问题。给定三个不同的对象:

  1. 一个名为 CloneList 的外部方法(Id 和函数名称)
  2. 一个使用它成功引用它的 DTML 文档

    <dtml-var "CloneList(PAGE,ORG,STATUS,CGAP_DATA_HOME,BASE)">
  3. 通过此...引用外部方法的 Python 脚本

    return CloneList(PAGE,ORG,STATUS,CGAP_DATA_HOME,BASE)

DTML 文档工作正常,但 Python 脚本由于某种原因抛出:

Error Value: global name 'CloneList' is not defined

为什么 DTML 模板可以很好地看到 CloneList 而 Python 脚本却不能?

最佳答案

DTML 命名空间包括当前上下文,Python 脚本命名空间不包括。 Python 代码必须使用显式方法来引用脚本之外的其他对象。

您可以使用 context 对象来引用 ZODB 中的其他对象,例如外部方法:

return context.CloneList(PAGE, ORG, STATUS, CGAP_DATA_HOME, BASE)

也可以在container上查名字;其中 context 使用获取链查找名称,container 仅查看脚本所在的文件夹以及所有父文件夹。

关于Zope 中的 Python 脚本无法在外部方法中找到函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29147744/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com