我设置了这样的功能
@view_config(
route_name = 'route_name',
permissions = 'permissions',
renderer = 'r.mako'
)
def r( request ):
# stuff goes here
现在,我想添加一些功能,以便我检查某些条件(使用ajax)我将使用一个模板,否则使用另一个。有没有办法在金字塔中做到这一点?感谢
答案 0 :(得分:15)
如果您可以通过谓词确定要执行的操作,则可以使用不同的渲染器多次添加视图。例如
@view_config(route_name='route', xhr=True, renderer='json')
@view_config(route_name='route', renderer='r.mako')
@view_config(route_name='route', request_param='fmt=json', renderer='json')
def r(request):
# ...
或者您可以通过request.override_renderer = 'b.mako'
手动覆盖渲染器:
或者您可以通过视图中的render
和render_to_response
方法显式呈现响应,因为如果返回renderer
对象,则会忽略Response
参数从视角来看。
请注意,第一个示例中的xhr
谓词应足以检查ajax请求。另请注意,如果您不想,则不必为两者使用相同的视图,只需依赖。