【发布时间】:2011-12-21 18:17:24
【问题描述】:
我已经阅读了using different renderers 或overriding renderer,但我想知道是否有更好的方法来处理这种模式。
现在,在我看来,我正在向模板返回一组项目:
@view_config(
route_name = 'name',
permission = 'perm',
renderer = 'r.mako'
)
def r( request ):
items = get_items()
return { 'items': items }
现在我希望 ajax 版本只渲染它的一个子集,还包含一些数据。我当前的工作代码:
@view_config(
route_name = 'name',
permission = 'perm',
renderer = 'r.mako'
)
def r( request ):
items = get_items()
if ajax:
return Response( to_json( {
'data1': 1,
'data2': 2,
'data3': 3,
'html': renderers.render( 'shortr.mako',
{ 'items': items },
request )
} )
return { 'items': items }
我想我特别想知道是否有一种更简洁的方法来覆盖渲染器,然后将其包装在某些东西中,而无需显式调用 render 并确保我得到了正确的 dict 或请求作为参数。谢谢
【问题讨论】: