[Zope3-Users] substitute for deprecated response.write()?

2005-12-28 Thread Adam Summers

Hi,

I was having a look at Phillipp's fabulous book (thanks!), and came 
across the code for publishing a PDF document to the browser (this is 
slightly modified from the book):


from zope.app import zapi
from zope.app.publisher.browser import BrowserView

from ccard.pdf.interfaces import IPDFPresentation

class PDFView(BrowserView):

 def __call__(self):
   pdf = zapi.getViewProviding(self.context, IPDFPresentation, 
self.request)

   filename = zapi.name(self.context) + '.pdf'
   response = self.request.response
   response.setHeader('Context-Disposition', 'attachment; filename=%s' 
% filena

me)
   response.setHeader('Content=Type', 'application/pdf')
   response.setHeader('Content-Length', len(pdf.data))
   response.write(pdf.data)

However, these days I get the error:

2005-12-28T15:29:56 ERROR SiteError 
http://localhost:8080/++skin++Boston/t2/Cred

itCard/pdf
Traceback (most recent call last):
 File /home/Adam/z3/Zope3/src/zope/publisher/publish.py, line 138, in 
publish

   result = publication.callObject(request, object)
 File 
/home/Adam/z3/Zope3/src/zope/app/publication/zopepublication.py, line 1

61, in callObject
   return mapply(ob, request.getPositionalArguments(), request)
 File /home/Adam/z3/Zope3/src/zope/publisher/publish.py, line 113, in 
mapply

   return debug_call(object, args)
 File /home/Adam/z3/Zope3/src/zope/publisher/publish.py, line 119, in 
debug_c

all
   return object(*args)
 File /home/Adam/z3/products/ccard/pdf/browser.py, line 15, in __call__
   response.write(pdf.data)
AttributeError: 'BrowserResponse' object has no attribute 'write'

What is the correct technique, now that BrowserResponse does not have 
write()


TIA, and Happy New Year
Adam



___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] substitute for deprecated response.write()?

2005-12-28 Thread Adam Summers

Hi,

   I am red faced (and blurry-eyed, its 1am here)- I found the answer 
in the archives, in September:


On Fri, Sep 16, 2005 at 11:50:19AM -0400, Stephan Richter wrote:


Just return the data; it is handled properly now.
 




Adam Summers wrote:


Hi,

I was having a look at Phillipp's fabulous book (thanks!), and came 
across the code for publishing a PDF document to the browser (this is 
slightly modified from the book):


from zope.app import zapi
from zope.app.publisher.browser import BrowserView

from ccard.pdf.interfaces import IPDFPresentation

class PDFView(BrowserView):

 def __call__(self):
   pdf = zapi.getViewProviding(self.context, IPDFPresentation, 
self.request)

   filename = zapi.name(self.context) + '.pdf'
   response = self.request.response
   response.setHeader('Context-Disposition', 'attachment; filename=%s' 
% filena

me)
   response.setHeader('Content=Type', 'application/pdf')
   response.setHeader('Content-Length', len(pdf.data))
   response.write(pdf.data)

However, these days I get the error:

2005-12-28T15:29:56 ERROR SiteError 
http://localhost:8080/++skin++Boston/t2/Cred

itCard/pdf
Traceback (most recent call last):
 File /home/Adam/z3/Zope3/src/zope/publisher/publish.py, line 138, 
in publish

   result = publication.callObject(request, object)
 File 
/home/Adam/z3/Zope3/src/zope/app/publication/zopepublication.py, line 1

61, in callObject
   return mapply(ob, request.getPositionalArguments(), request)
 File /home/Adam/z3/Zope3/src/zope/publisher/publish.py, line 113, 
in mapply

   return debug_call(object, args)
 File /home/Adam/z3/Zope3/src/zope/publisher/publish.py, line 119, 
in debug_c

all
   return object(*args)
 File /home/Adam/z3/products/ccard/pdf/browser.py, line 15, in __call__
   response.write(pdf.data)
AttributeError: 'BrowserResponse' object has no attribute 'write'

What is the correct technique, now that BrowserResponse does not have 
write()


TIA, and Happy New Year
Adam



___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users



___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users