我有我的Plone實例設置。我想從我的login_next腳本中調用自定義的python腳本函數。Plone從login_next腳本調用python函數
我該怎麼做?
說的如:
Custom_print.py
def disp():
return 'Hello world'
我怎麼會叫這個DISP()我login_next腳本里面?
我有我的Plone實例設置。我想從我的login_next腳本中調用自定義的python腳本函數。Plone從login_next腳本調用python函數
我該怎麼做?
說的如:
Custom_print.py
def disp():
return 'Hello world'
我怎麼會叫這個DISP()我login_next腳本里面?
因此,這個Custom_print.py位於portal_skins中可用的皮膚目錄中,並且用於默認皮膚?換句話說:訪問http://your-plone-site/Custom_print會返回字符串'Hello world'?
然後,您可以自定義login_next腳本(在portal_skins的自定義映射中或文件系統中的自己的皮膚上),並在那裏調用context.Custom_print()
。
這取決於你從哪把這個腳本:
context.Custom_print()
。請注意0。import mymodule; mymodule.Custom_print()
在舊的Zope2/CMF portal_skins中的世界,一個portal_skins中/ */foo.py對象視爲等的方法本身。 IOW,沒有必要用來包裝它的內容,因爲皮膚對象將被「調用」,只需通過context.foo()
遍歷它即可。沒有進口或任何其他正常的Python的東西。
雖然我們試圖儘快擺脫這種情況,並回到pythonic的理智狀態,但login_next仍然是一個portal_skins腳本,因此使用portal_skins腳本來執行您想要做的事情是適當的。所以你的login_next腳本可以自己做return "Hello World"
。
不,你不能通過導入來「使用它」。 login_next腳本在某些限制下運行,並且只有在文件系統模塊位於模塊白名單上時纔可以導入它。 –
eheh,你是對的...你必須在允許的模塊中使用這個代碼來啓用它:http://wiki.zope.org/zope2/HowToAddModulesToRestrictedCode –