使用Plone Add-on包含Python脚本

使用Plone Add-on包含Python脚本,第1张

概述我有一个Plone加载项(通过Zope创建),包括 Javascript和页面模板文件.一些Javascript函数需要调用Python脚本(通过AJAX调用) – 如何在不通过ZMI的情况下将这些Python脚本包含在我的附加组件中? 我有一个“浏览器”文件夹,其中包含“configure.zcml”文件 – 注册资源目录和我的模板文件.我会假设注册python文件与此类似,或类似于Javasc 我有一个Plone加载项(通过Zope创建),包括 Javascript和页面模板文件.一些JavaScript函数需要调用Python脚本(通过AJAX调用) – 如何在不通过ZMI的情况下将这些Python脚本包含在我的附加组件中?

我有一个“浏览器”文件夹,其中包含“configure.zcml”文件 – 注册资源目录和我的模板文件.我会假设注册python文件与此类似,或类似于JavaScript文件的注册方式,但也许不是?

解决方法 您将python注册为内容对象上的VIEws:

<browser:page for="**INTERFACE**" name="**name**"  attribute="**method**" permission="zope2.VIEw" />

INTERFACE是您想要查看的对象的接口,
name是视图名称(即http:// path-to-object / @@ name),
class是定义脚本的Python类,attribute是类的可选方法(默认为__call__).严格来说,我认为class是任何可调用的,不一定是类的方法.

这是我用于kss *** 作的脚本(与编写自己的AJAX脚本几乎相同) – 您的类可能需要从browserVIEw继承(PloneKSSVIEw是KSS视图的专用):

<browser:page for="Products.VirtualDataCentre.interfaces.IDDCode" name="gettableColumns"  attribute="gettableColumns" permission="zope2.VIEw" />

其中IDDCode是我需要视图的内容类型,DDActions.py具有:

from Products.Five import browserVIEwfrom plone.app.kss.plonekssvIEw import PloneKSSVIEwclass DDActions(PloneKSSVIEw):    def gettableColumns(self,table,currValue,currLabel):        columns = self.context.getColumnnames(table)        for (fIEld,curr) in [('valueColumn',currValue),('labelColumn',currLabel)]:            self.replaceSelect(fIEld,columns,(curr or self.context[fIEld]))
总结

以上是内存溢出为你收集整理的使用Plone Add-on包含Python脚本全部内容,希望文章能够帮你解决使用Plone Add-on包含Python脚本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192544.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存