summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2011-08-23 00:21:50 -0500
committerMichael Merickel <michael@merickel.org>2011-08-23 00:21:50 -0500
commitb9f2f5b6ef8203d656e2f3447a31151ce6bf3ede (patch)
tree6d6772ad989c82d894d82ff96c9cdb0a03f52028
parent8cad2459a14e9e1f8d3a28e02bae482bdefd40e1 (diff)
downloadpyramid-b9f2f5b6ef8203d656e2f3447a31151ce6bf3ede.tar.gz
pyramid-b9f2f5b6ef8203d656e2f3447a31151ce6bf3ede.tar.bz2
pyramid-b9f2f5b6ef8203d656e2f3447a31151ce6bf3ede.zip
Modified routes and views to delay more work until their actions.
-rw-r--r--pyramid/config/routes.py20
-rw-r--r--pyramid/config/views.py21
2 files changed, 20 insertions, 21 deletions
diff --git a/pyramid/config/routes.py b/pyramid/config/routes.py
index b83ca346c..94d3e2427 100644
--- a/pyramid/config/routes.py
+++ b/pyramid/config/routes.py
@@ -345,16 +345,6 @@ class RoutesConfiguratorMixin(object):
custom=custom_predicates
)
- request_iface = self.registry.queryUtility(IRouteRequest, name=name)
- if request_iface is None:
- if use_global_views:
- bases = (IRequest,)
- else:
- bases = ()
- request_iface = route_request_iface(name, bases)
- self.registry.registerUtility(
- request_iface, IRouteRequest, name=name)
-
# deprecated adding views from add_route
if any([view, view_context, view_permission, view_renderer,
view_for, for_, permission, renderer, view_attr]):
@@ -379,6 +369,16 @@ class RoutesConfiguratorMixin(object):
mapper = self.get_routes_mapper()
def register():
+ request_iface = self.registry.queryUtility(IRouteRequest, name=name)
+ if request_iface is None:
+ if use_global_views:
+ bases = (IRequest,)
+ else:
+ bases = ()
+ request_iface = route_request_iface(name, bases)
+ self.registry.registerUtility(
+ request_iface, IRouteRequest, name=name)
+
return mapper.connect(name, pattern, factory, predicates=predicates,
pregenerator=pregenerator, static=static)
diff --git a/pyramid/config/views.py b/pyramid/config/views.py
index 633906468..c7ef52ee8 100644
--- a/pyramid/config/views.py
+++ b/pyramid/config/views.py
@@ -870,17 +870,6 @@ class ViewsConfiguratorMixin(object):
raise ConfigurationError(
'request_type must be an interface, not %s' % request_type)
- request_iface = IRequest
-
- if route_name is not None:
- request_iface = self.registry.queryUtility(IRouteRequest,
- name=route_name)
- if request_iface is None:
- # route configuration should have already happened
- raise ConfigurationError(
- 'No route named %s found for view registration' %
- route_name)
-
order, predicates, phash = make_predicates(xhr=xhr,
request_method=request_method, path_info=path_info,
request_param=request_param, header=header, accept=accept,
@@ -902,6 +891,16 @@ class ViewsConfiguratorMixin(object):
registry = self.registry)
def register(permission=permission, renderer=renderer):
+ request_iface = IRequest
+ if route_name is not None:
+ request_iface = self.registry.queryUtility(IRouteRequest,
+ name=route_name)
+ if request_iface is None:
+ # route configuration should have already happened
+ raise ConfigurationError(
+ 'No route named %s found for view registration' %
+ route_name)
+
if renderer is None:
# use default renderer if one exists (reg'd in phase 1)
if self.registry.queryUtility(IRendererFactory) is not None: