委托从一个视图到另一个视图

时间:2011-08-07 12:07:33

标签: python pyramid

我正在使用具有不同观点的金字塔。我想知道是否可以将视图作业的部分“委托”到另一个视图(另一个路径)。

例如:

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):
    ....

1 个答案:

答案 0 :(得分:1)

您可以直接调用视图,他们只是不会通过将permission和其他此类参数应用于视图的金字塔路由器机制。但是,如果你试图打电话,你已经知道了这些事情。

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