diff options
Diffstat (limited to 'repoze/bfg/traversal.py')
| -rw-r--r-- | repoze/bfg/traversal.py | 9 |
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 |
