包括带有Plone附加组件的Python脚本

包括带有Plone附加组件的Python脚本,python,scripting,plone,add-on,Python,Scripting,Plone,Add On,我有一个Plone插件(通过Zope创建),其中包括Javascript和页面模板文件。一些Javascript函数需要调用Python脚本(通过AJAX调用)——如何在不经过ZMI的情况下将这些Python脚本包括在我的插件中 我有一个“浏览器”文件夹,其中包含一个“configure.zcml”文件-注册资源目录和我的模板文件。我假设注册python文件与此类似,或者与注册Javascript文件的方式类似,但可能不是这样?将python注册为内容对象上的视图: <browser:pa

我有一个Plone插件(通过Zope创建),其中包括Javascript和页面模板文件。一些Javascript函数需要调用Python脚本(通过AJAX调用)——如何在不经过ZMI的情况下将这些Python脚本包括在我的插件中


我有一个“浏览器”文件夹,其中包含一个“configure.zcml”文件-注册资源目录和我的模板文件。我假设注册python文件与此类似,或者与注册Javascript文件的方式类似,但可能不是这样?

将python注册为内容对象上的视图:

<browser:page
 for="**INTERFACE**"
 name="**name**"
 class="**class**"
 attribute="**method**"
 permission="zope2.View"
 />
其中,IDDCode是我需要查看的内容类型,DDActions.py具有:

from Products.Five import BrowserView
from plone.app.kss.plonekssview import PloneKSSView
class 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]))

@黑羊看到了修订后的答案,这正是我想要的!谢谢
from Products.Five import BrowserView
from plone.app.kss.plonekssview import PloneKSSView
class 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]))