"Редирект" на action другого контроллера.

5 views
Skip to first unread message

masted

unread,
Feb 26, 2008, 11:49:23 AM2/26/08
to webpython-ru
Здравствуйте!

Захотелось научить pylons.decorators.validate делать вызов метода
другого контроллера, в случае если данные не прошли валидации.

Пример, хочется чтобы происходил вызов метода render_form объекта
класса HelloController:

class HelloController(BaseController):

def render_form(self):
return render('/hello_form.mako')

class HelloFormController(FormController):

@myvalidate(scheme=SimpleSchema(),
form='HelloController:render_form'
def save_form(self):
...

Есть ли какой-то прямой способ это сделать?

У меня не получилось ни чего вменяемого придумать. :)
Если нужно будет, могу выложить свои наработки по этому вопросу
и подробней описать, где у меня случился затык.
Спасибо.

Max Ischenko

unread,
Feb 27, 2008, 1:50:26 AM2/27/08
to webpyt...@googlegroups.com
On 2/26/08, masted <mas...@gmail.com> wrote:
Здравствуйте!

Захотелось научить pylons.decorators.validate делать вызов метода
другого контроллера, в случае если данные не прошли валидации.

Пример, хочется чтобы происходил вызов метода render_form объекта
класса HelloController:

Есть ли какой-то прямой способ это сделать?

См.  request.environ. Я когда-то такое пытался делать, сабмитил патч в Pylons чтобы тот записывал в environ контроллер (тогда можно сделать getattr(environ[...], 'render_form')().

Или см. исходники пилонс, ф-цию validate()



--
Max
http://maxischenko.in.ua // http://www.linkedin.com/in/maksim
Reply all
Reply to author
Forward
0 new messages