我发现我可以使用多个@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吗? 迈克尔
答案 0 :(得分:1)
view_defaults
用作每个view_config
调用的输入。他们不是替代品。路由关注的唯一事情是注册的实际视图,这是通过view_config
或config.add_view
完成的。 view_defaults
不会注册视图。