2017-05-03 18 views
0

指定的多个路由我发现我可以使用多个@view_config装饰引起为了处理一个以上的路线,像这样:如何使用金字塔@view_defaults为相同的观点

@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

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