Pyramid 提供了一个 beforeRenderer
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_name'] 和 event['renderer_info'].name,它还可以在 config.xml 中找到渲染器(模板文件)。
config.add_view('mywork.views.index.index',
route_name='/index',
renderer='mywork:templates/index.pt')
我想在 view.py 或 root_factory 中使用渲染器的名称来更改渲染器值,因此它可以更改所有模板。