2011-08-07 151 views
1

我正在使用不同视图的金字塔。我想知道是否有可能将视图作业的某些部分“委托给另一个视图(另一个视图)。从一个视图到另一个视图的代表

例如:

http://localhost:6543/sample_project/testruns/testrun001/report.html?action=edit 
=> delegate to: 
http://localhost:6543/sample_project/testruns/testrun001/report.json 

的意见,我使用:

# report: 
@view_config(context=Root, route_name='report_route') 
def report_view(context, request): 
    ... 
    if 'edit' in request.GET.getall('action'): 
     # TODO: delegate to code_view 
     ??? 
    ... 
    # render report from report.json 

# editor: 
@view_config(context=Root, route_name='report_edit_route') 
@view_config(context=Root, route_name='code_route') 
def code_view(context, request): 
    .... 
+0

我不知道金字塔,但不只是'返回code_view(上下文,请求)'的工作? –

回答

1

可以直接调用的意见,他们根本不会去通过它适用金字塔路由器机制permission和其他这样的参数视图。不过,假如你试图称呼它,你已经知道这些事情。

实际上,您可能只是想将常见功能重构为一个单独的功能,然后您的每个视图都可以将部分工作委托给该功能。

+0

谢谢Michael!我将遵循重构方法。这听起来像是一个很好的建议。 – mark

相关问题