[Grok-dev] zope.app.wsgi adapters not registered by default
Christian Klinger
cklinger at novareto.de
Wed May 11 07:55:50 EDT 2011
Hi Jeroen,
i guess you have to do something like this:
But i am not sure if it works...
tempfile.write('testing')
tempfile.seek(0)
return tempfile.read()
Christian
>
> I'm upgrading a grok1.1 project to 1.4, and I came across this problem:
> I have some views that allow XML export of some objects. The view's render
> method returns an on-the-fly generated tempfile.TemporaryFile object. That
> used to work before, but not after upgrading to 1.4: I got a rather obscure
> 'TypeError: The result should be None, a string, or adaptable to IResult.'
> error.
>
> After some searching I found that zope.app.wsgi does define adapters for
> this, however, they don't seem to be registered by default. Adding
> 'zope.app.wsgi' to install_requires in setup.py solved the issue.
>
> Was this deliberate, or an oversight?
> If it is deliberate, there should be some mention of it in the docs.
>
> I tried with a clean 1.4 project, and had the same problem:
> create a new project and add
>
> from tempfile import TemporaryFile
>
> class Download(grok.View):
> def render(self):
> tempfile = TemporaryFile()
> tempfile.write('testing')
> return tempfile
>
> browsing to '/test/download' will give you the error (provided the app was
> added as 'test' of course).
More information about the Grok-dev
mailing list