Передать аргументы на страницу браузера Zope - PullRequest
1 голос
/ 06 июня 2011

В моем экземпляре 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 Ответ

3 голосов
/ 06 июня 2011

Вы упускаете довольно много деталей в вашем методе. Это метод класса? Или автономный? Обычно self ссылается на экземпляр класса PyTest , который будет подклассом BrowserView .

Затем данные, передаваемые в представление ( @@ test ), извлекаются из объекта Request , который доступен в self.request ( в частности, в этом случае self.request.form.data ) (Таким образом, вы не указываете аргумент «data» для метода).

Ммм. Я не думаю, что вы хотите, чтобы круглые скобки были заключены в слова: data: ({data: "mydata"}).

...