делегировать от одного взгляда к другому - PullRequest
1 голос
/ 07 августа 2011

Я использую Пирамиду с разными взглядами.Мне интересно, можно ли "делегировать" части задания представлений другому представлению (другому маршруту).

Например:

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 Ответ

1 голос
/ 08 августа 2011

Вы можете напрямую вызывать представления, они просто не будут проходить через механизм пирамидального маршрутизатора, который применяет permission и другие подобные параметры к представлению.Предположительно, если вы пытаетесь вызвать его, однако, вы уже знаете эти вещи.

На самом деле, вы, вероятно, просто хотите преобразовать общую функциональность в отдельную функцию, которой каждое из ваших представлений может затем делегировать частьработа к.

...