Wow what a cool decorator.  I know documentation is an ongoing and hard
thing to finish, but I've never seen this in any of docs, did I miss it?
Jose

Ben Bangert wrote:
> On Sep 15, 2007, at 5:10 AM, Леонид Моргун wrote:
>
>> I'm using pylons-0.9.6, formencode-0.7.1-r1
>>
>> I try to validate controller with form:
>>
>> -----------------------------------------------------
>> @validate(schema=...,form='register')
>> def register(self):
>>     if not hasattr(self,'form_result'):
>>         return render('/register.myt')
>>     ... do something with form_result...
>>     return redirect_to('/redistered_ok')
>> -----------------------------------------------------
>
> Right, the form should refer to a *different* action that handles
> rendering the original page.
>
>> -----------------------------------------------------
>> def register(self):
>>     return render(...
>>
>> @validate(schame=....,form='register')
>> def register_validate(self):
>>     ... do something with form_result ...
>>     return redirect_to...
>> -----------------------------------------------------
>>
>> What do I do wrong? Was this feature broken in new version of pylons?
>
> This is how its supposed to work. If the validation fails, it needs to
> get the form to display the errors, so it calls the other action and
> fills them in. Generally, I put a REST dispatch_on decorator on my
> original function so that POST's go to the other one. So I have code
> like so:
>
>     @rest.dispatch_on(POST='_handle_login')
>     def login(self, skin=None, anonymous=False):
>          .....
>
>     @validate(form='login', schema=forms.Login())
>     def _handle_login(self):
>         .....
>
> And in my lib/base.py I have:
> import pylons.decorators.rest as rest
>
>> P.S. The first code-block worked with pylons-0.9.5
>
> I'd be amazed if it did, there shouldn't be any way it can render
> itself since every call to itself will result in the validate being
> run again, then errors so it calls the action, thus calling validate,
> etc.
>
> Cheers,
> Ben

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to