我有我的Plone实例设置。我试图从我的login_next脚本调用自定义python脚本函数。
我该怎么做?
比如说:
Custom_print.py
def disp():
return 'Hello world'
我如何在login_next脚本中调用此disp()?
答案 0 :(得分:1)
因此,这个Custom_print.py位于portal_skins中可用的皮肤目录中,并在默认皮肤中使用?换句话说:访问http://your-plone-site/Custom_print会返回字符串'Hello world'?
然后,您可以自定义login_next脚本(在portal_skins的自定义映射中或在文件系统上的自己的皮肤中)并在那里调用context.Custom_print()
。
答案 1 :(得分:1)
这取决于你把脚本放在哪里:
context.Custom_print()
。请注意Acquisition's pitfalls。import mymodule; mymodule.Custom_print()
答案 2 :(得分:1)
在旧的Zope2 / CMF portal_skins世界中,portal_skins / * / foo.py对象被视为,就像方法本身一样。 IOW,没有必要用def func_name()
包装它的内容,因为skin对象只需通过context.foo()
遍历它就可以“调用”。没有导入或任何其他正常的python东西。
虽然我们试图尽可能快地摆脱这些东西并回到更多的pythonic理智,但login_next仍然是portal_skins脚本,所以使用portal_skins脚本来做你想做的事情是合适的。所以你的login_next脚本可以自己做return "Hello World"
。