Well, if validation fails, then program flow will go to your @error_handler
method (in this case, wholesaleMargin), so you would need to look there to
see what's happening.  Does  wholesaleMargin() have a return value?  It
doesn't look like it from your code...

Of course, reading this: http://docs.turbogears.org/1.0/ValidateDecorator...
"When the arguments, for whatever reason, fail validation, you will receive
no values for the failing arguments."

So it seems that what I suggested earlier isn't going to work in any case.
My guess is that validation is failing somehow, and that's causing some of
your arguments to not have a value, which is messing up your PDF generation
somehow.  Or something.

Where is the error message coming from?  Figuring out where that is being
generated would go a long ways towards diagnosing your problem.

Kevin Horn

On 3/15/07, Jim Steil <[EMAIL PROTECTED]> wrote:
>
>  Kevin Horn wrote:
>
> Since it works fine without the validation, I would suspect that the
> validation process is changing a variable in some way that screws up the PDF
> rendering process.  Try sending the output to a file (in addition to
> rendering it to the browser) both with and without the decorators, and
> compare the results.
>
> Also see if you can get the variables that are being handled by your form,
> both with and without validation and compare those.
>
> Kevin Horn
>
> On 3/14/07, Jim Steil <[EMAIL PROTECTED]> wrote:
> >
> >
> > Hi:
> >
> > I'm writing a function that generates a pdf and displays it to the
> > screen.  Thanks to Timothy Freund for his tutorial on how to do this.
> > It can be found here:
> >
> >
> > http://achievewith.us/public/articles/2007/02/21/produce-pdf-pages-with-turbogears-cheetah-and-reportlab
> >
> >
> > However, I'm having a problem.  In the section of code labeled
> > pdfdemo.controllers.Root.letters (), I'm trying to add the validate and
> > error_handler decorators to validate some input I need for the report.
> > My code works fine without the decorators but fails with the
> > decorators.  I'm using Windows and Firefox and here is the error I get
> > when I try it:
> >
> > File does not begin with '%PDF-'.
> >
> > Here is the code in my controller:
> >
> >     @tg.expose(content_type="application/pdf")
> >     @tg.validate(form=qlfFields.wholesaleMarginWidget )
> >     @tg.error_handler(wholesaleMargin)
> >     def wholesaleMarginReport(self, *args, **kw):
> >         fromDate = kw['fromDate']
> >         toDate = kw['toDate']
> >         letters_file = StringIO.StringIO ()
> >         wm.wholesaleMargin(letters_file, fromDate, toDate)
> >         pdf = letters_file.getvalue()
> >         letters_file.close()
> >
> >         return(pdf)
> >
> > This works fine if I remove the validate and error_handler decorators.
> > Any ideas, clues on where I should be looking?
> >
> >     -Jim
> >
> >
> >
> >
> >
>
>
>  The problem there is that I never even get into the code in the method.
> If I put a log.debug(kw) as the first line of the code, it never gets
> there.  It is skipping over the entire method and returning nothing.
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears" 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/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to