It's not totally clear to me what you need to do, but @validate is not a
plain python decorator in TG2, it's a request hook in, so it gets processed
as part of request dispatch. This is so that the decorators order doesn't
matter, they are processed at specific request times.

@validate just registers into request flow that it should validate, but
it's the dispatch process that will perform the validation (independently
from the fact that the action is called or not) This means that manually
calling get_errors doesn't trigger validation as when you reach create the
validation phase already happened.

What you are trying to do is probably just to call .validate method on the
form, that should run the validation for the form and give back a
validation error with the details of what went wrong.

On Thu, Jan 26, 2017 at 3:44 AM, D R Dinesh Kumar <[email protected]>
wrote:

> Can some one help me here please?? Tried a lot of variations in validating
> the form but failed.
> Any help is greatly appreciated.
>
>
> On Wednesday, 25 January 2017 06:40:37 UTC-8, D R Dinesh Kumar wrote:
>>
>> Hi,
>>
>> I am migrating my TG1 project to TG2 and I have the following code in TG1
>> form.
>>
>> def create(**kw):
>>     form = TableForm(fields=[...], validator = [SchemaValidator1()])
>>
>>     if kw:
>>         @validate(form=form)
>>         def get_errors(tg_errors=None, **kw):
>>              return tg_errors, kw
>>         tg_errors, kw = get_errors(kw)
>>
>> Basically, the idea was to delay the validation and do it whenever we
>> require (as above).
>>
>> How to move this code to TG2 that works?
>> The same code in TG2 is not working and SchemaValidator1 is not being
>> called at all. I saw the code in TG2 for validate and found that @validate
>> registers the decorator and then calls them during controllerdecorators. So
>> how to achieve what I am looking for?
>>
>> Please help....
>>
>> With Regards,
>> Dinesh.
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "TurboGears" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/turbogears.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/turbogears.
For more options, visit https://groups.google.com/d/optout.

Reply via email to