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 -~----------~----~----~----~------~----~------~--~---

