summaryrefslogtreecommitdiff
path: root/repoze/bfg/traversal.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/traversal.py')
-rw-r--r--repoze/bfg/traversal.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/repoze/bfg/traversal.py b/repoze/bfg/traversal.py
index 11e5ca806..580225566 100644
--- a/repoze/bfg/traversal.py
+++ b/repoze/bfg/traversal.py
@@ -273,9 +273,12 @@ def traverse(model, path):
return _traverse(model, {'PATH_INFO':path})
def _traverse(model, environ):
- traverser = queryAdapter(model, ITraverser)
- if traverser is None:
- traverser = ModelGraphTraverser(model)
+ if ITraverser.providedBy(model):
+ traverser = model
+ else:
+ traverser = queryAdapter(model, ITraverser)
+ if traverser is None:
+ traverser = ModelGraphTraverser(model)
result = traverser(environ)
return result