将参数传递给Zope浏览器页面

时间:2011-06-06 14:29:38

标签: python parameter-passing zope

在我的Zope实例中,我将一个Python脚本注册为浏览器页面。我有以下代码作为其注册表:

<browser:page name="test" for="*" permission="zope2.Public" class="browser.test.PyTest" attribute="CallPy" />

此函数“PyTest.CallPy”定义为:

def CallPy(self, data): ...

然后我使用JavaScript来调用函数,传递数据:

$.ajax({ url: "@@test", data: ({data: "mydata"}), dataType: "text", success: ..., error: ... });

然而,当我进行此调用时,我收到一条错误消息,指出“CallPy()正好接受2个参数(给定1个)”。

如何在调用此数据时将此函数注册为传递此数据的页面?

1 个答案:

答案 0 :(得分:3)

你遗漏了很多关于你的方法的细节。这是一个班级的方法吗?还是独立的?通常, self 会引用类 PyTest 的实例 - 它将是 BrowserView 的子类。

然后,您从请求对象中检索传递给视图的数据( @@ test ),该对象位于 self.request (特别是在这种情况下, self.request.form.data )(因此,您没有为方法指定'data'参数)。

嗯。我不认为你想要围绕dict的括号:data: ({data: "mydata"})