Python 获取金字塔中的匹配视图

Python 获取金字塔中的匹配视图,python,pyramid,Python,Pyramid,我有金字塔服务,代码如下: @view_defaults(route_name="result", context=Result, renderer="json") class ResultView(RESTView): """ Rest view for exercise results """ @view_config(request_method='GET', permission='view', role="owner") @view_confi

我有金字塔服务,代码如下:

@view_defaults(route_name="result", context=Result, renderer="json")
class ResultView(RESTView):
    """
    Rest view for exercise results
    """

    @view_config(request_method='GET', permission='view', role="owner")
    @view_config(request_method='GET', permission='view', role="admin")
    @view_config(request_method='GET', permission='view', role="gadmin")
    @schema(Result)
    @log("get result")
    def get(self):
        """
        Gets result
        """

        return self.get.__schema__.dictirialize(self.context, prepare_json=True)

......

如何在
ResultView.get
中获得匹配的视图?

我通过创建一个自定义视图装饰器来解决这个问题,该装饰器在
请求中附加
视图id
。根据激活的视图配置调用此装饰器。以下是一个例子:

    @view_config(request_method='GET', role="owner", permission="view", decorator=view_id("owner"))
    @view_config(request_method='GET', role="admin", permission="view", decorator=view_id("admin"))
    @view_config(request_method='GET', permission="view")
    @schema(User, excludes=('password', 'deleted'), key="owner")
    @schema(User, key="admin")
    @log("get user")
    def get(self):
        return self.get.__schema__[self.request.id].dictify(self.context)
还有装饰师:

def view_id(id):
    """
    Pyramid view decorator that remembers the view id and assigns it to request
    """

    def _view_id(view):
        def view_callable(context, request):
            request.id = id
            return view(context, request)

        return view_callable

    return _view_id

它帮我完成了任务。

你在这里找什么?匹配的角色?否调用函数时匹配的视图配置对象。我开始意识到我可能必须采取不同的方法。没有“视图配置”对象,这感觉像是XY问题