金字塔:如何获取当前渲染器名称视图.py在runtim

2024-05-15 09:05:03 发布

您现在位置:Python中文网/ 问答频道 /正文

金字塔提供了一个预渲染器

    from repoze.events import subscriber
    from pyramid.events import BeforeRender

    @subscriber(BeforeRender)
    def add_global(event):
        print event['renderer_name']      #this is the renderer name
        print event['renderer_info'].name #same with event['renderer_name']

但没用。如果我更改或删除event['renderer\uname']和event['renderer\uinfo'].name,它也可以在config中找到渲染器(模板文件)。在

^{pr2}$

我想在中使用渲染器的名称视图.py或者在根工厂中更改渲染器值,以便可以更改所有模板。在


Tags: namefromimporteventadd模板pyramiddef
1条回答
网友
1楼 · 发布于 2024-05-15 09:05:03

在呈现之前调用BeforeRender。换句话说,它是在view.py之后调用的,我假设您放置了视图。root_factory在此之前也被称为。root_factory用于创建用于遍历的根节点。这将返回一个上下文。如果没有上下文,则不会调用视图,并且金字塔会引发上下文找不到错误。在

BeforeRender在视图返回某些参数后调用,或者可能在调用返回呈现器响应的renderToResponse之前调用。可以从视图中传递渲染器。在

http://docs.pylonsproject.org/projects/pyramid/en/1.3-branch/narr/templates.html#using-templates-directly

设置视图时必须删除renderer参数。在

相关问题 更多 >