[Zope3-dev] views have no __page_attribute__ ?

Jim Fulton jim at zope.com
Tue Oct 4 15:52:58 EDT 2005


Jean-Marc Orliaguet wrote:
> Jim Fulton wrote:
> 
> 
>>Jean-Marc Orliaguet wrote:
>>
>>
>>>...
>>>
>>>With the '+' view described above, there is a default page attribute to
>>>use for displaying the view ('index.html') and but no page attribute
>>>explicitly assigned.
>>>
>>>The following patch fixes the problem, but I'm afraid that I'm missing
>>>something: are views supposed to have a '__page_attribute__' or not?
>>
>>
>>They are only supposed to ave a page attribute if they are pages. :)
>>
>>The directive above creates a view *with pages*.  This means that the
>>view itself should not a page and is not intended to be callable.
>>
>>Bottom line: views created this way are not callable and are not directly
>>renderable.
>>
>>There's a bit more complexity than I'd like in these view directives.
>>This is
>>why, more and more, I tend to *define* views in Python and just
>>register them
>>with the adapter or view directive.  I still do often find it useful
>>to register
>>views with the view directive, mainly so I can avoid having to mention
>>IBrowserRequest.
>>
>>Jim
>>
> 
> 
> OK, so the 'view' object set in page templates is not the object to call
> for rendering the page.

Uh, normally the page template renders the page.

Different views are constructed differently.  Views created
with the page directive and views created with a view directive
without page subdirectives *can* be called to render pages --
basically because they *are* pages.  OTOH a view directive with
page subdirectives is meant to be traversed to get to it's pages,
which then can be called.

> All in all, I managed to render the '+' view by calling the 'template'
> object and passing the 'view' as the instance parameter
> 
> 
>>>>markup = template(instance=view)

I'm confused. Aren't you already in the template?

Jim


-- 
Jim Fulton           mailto:jim at zope.com       Python Powered!
CTO                  (540) 361-1714            http://www.python.org
Zope Corporation     http://www.zope.com       http://www.zope.org


More information about the Zope3-dev mailing list