如何使用金字塔@view_defaults为同一视图指定多个路由

时间:2017-05-03 14:14:47

标签: decorator pyramid

我发现我可以使用多个@view_config装饰器来使视图处理多个路径,如下所示:

@view_config(route_name = "user_create")
@view_config(route_name = "user_edit")
def handle_it(request):
    pass

但是当我尝试使用类装饰器@view_defaults实现相同的功能时,它不起作用:

@view_defaults(route_name = "user_create")
@view_defaults(route_name = "user_edit")
class Foo(object):
    def __init__(self, request):
        self.request = request
    def handle_it(self):
        pass

在最后一种情况下发生的事情是提到的第一个路由(user_create)受到金字塔的尊重,但是对user_edit路由的请求会产生404错误。

我不能用这种方式使用@view_defaults吗? 迈克尔

1 个答案:

答案 0 :(得分:1)

view_defaults用作每个view_config调用的输入。他们不是替代品。路由关注的唯一事情是注册的实际视图,这是通过view_configconfig.add_view完成的。 view_defaults不会注册视图。