From 81a833da2adff04d11b9228406bbc1528be65c64 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Sat, 24 Jul 2010 07:04:49 +0000 Subject: - A new method of the ``Configurator`` exists: ``set_request_factory``. If used, this method will set the factory used by the :mod:`repoze.bfg` router to create all request objects. - The ``Configurator`` constructor takes an additional argument: ``request_factory``. If used, this argument will set the factory used by the :mod:`repoze.bfg` router to create all request objects. - The ``Hooks`` narrative chapter now contains a section about changing the request factory. --- repoze/bfg/traversal.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'repoze/bfg/traversal.py') diff --git a/repoze/bfg/traversal.py b/repoze/bfg/traversal.py index ce5b3225d..ce76f5be4 100644 --- a/repoze/bfg/traversal.py +++ b/repoze/bfg/traversal.py @@ -6,6 +6,7 @@ from zope.interface.interfaces import IInterface from repoze.lru import lru_cache from repoze.bfg.interfaces import IContextURL +from repoze.bfg.interfaces import IRequestFactory from repoze.bfg.interfaces import ITraverser from repoze.bfg.interfaces import VH_ROOT_KEY @@ -275,8 +276,9 @@ def traverse(model, path): if path and path[0] == '/': model = find_root(model) - request = Request.blank(path) reg = get_current_registry() + request_factory = reg.queryUtility(IRequestFactory, default=Request) + request = request_factory.blank(path) request.registry = reg traverser = reg.queryAdapter(model, ITraverser) if traverser is None: -- cgit v1.2.3