From 5191e63deb8d3408eb5138aa00e5f9ef4e5e8e22 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Sat, 23 Jul 2011 16:04:29 -0400 Subject: dont wrap a view callable if it's None --- pyramid/request.py | 4 ++-- pyramid/router.py | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/pyramid/request.py b/pyramid/request.py index 605b4b061..31a6bb12d 100644 --- a/pyramid/request.py +++ b/pyramid/request.py @@ -221,9 +221,9 @@ class Request(BaseRequest, DeprecatedRequestMethods): wrappers.append(wrapper) self.view_wrappers = wrappers - def _wrap_view(self, view, is_exc_view=False): + def _wrap_view(self, view, exc=None): for wrapper in self.view_wrappers: - view = wrapper(view, is_exc_view) + view = wrapper(view, self, exc) return view def add_response_callback(self, callback): diff --git a/pyramid/router.py b/pyramid/router.py index b11ebc7eb..0294d8d75 100644 --- a/pyramid/router.py +++ b/pyramid/router.py @@ -141,11 +141,6 @@ class Router(object): (IViewClassifier, request_iface, context_iface), IView, name=view_name, default=None) - # if there were any view wrappers set on the current - # request, use them to wrap the view - if request.view_wrappers: - view_callable = request._wrap_view(view_callable) - # invoke the view callable if view_callable is None: if self.debug_notfound: @@ -163,6 +158,11 @@ class Router(object): msg = request.path_info raise HTTPNotFound(msg) else: + # if there were any view wrappers for the current + # request, use them to wrap the view + if request.view_wrappers: + view_callable = request._wrap_view(view_callable) + response = view_callable(context, request) # handle exceptions raised during root finding and view-exec @@ -184,7 +184,8 @@ class Router(object): raise if request.view_wrappers: - view_callable = request._wrap_view(view_callable, True) + view_callable = request._wrap_view(view_callable, + exc=why) response = view_callable(why, request) -- cgit v1.2.3