[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