diff options
| author | Michael Merickel <michael@merickel.org> | 2013-07-15 19:43:26 -0700 |
|---|---|---|
| committer | Michael Merickel <michael@merickel.org> | 2013-07-15 19:43:26 -0700 |
| commit | ab457f8d7d763ffb4d8c962d7cfe8328c62d390b (patch) | |
| tree | e0e7b453eb434d338d09355d52be2c64ffbde8ba | |
| parent | b6d007065132ad313a0777eb89a71b6fbdc4bcdf (diff) | |
| parent | 84b9027389615084eaf402f8f2aae2ec7199bd67 (diff) | |
| download | pyramid-ab457f8d7d763ffb4d8c962d7cfe8328c62d390b.tar.gz pyramid-ab457f8d7d763ffb4d8c962d7cfe8328c62d390b.tar.bz2 pyramid-ab457f8d7d763ffb4d8c962d7cfe8328c62d390b.zip | |
Merge pull request #1046 from lrowe/skip-same-views
Avoid re-executing the same view when looking up context base views.
| -rw-r--r-- | pyramid/router.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/pyramid/router.py b/pyramid/router.py index 3d2a2ff3e..1a991648b 100644 --- a/pyramid/router.py +++ b/pyramid/router.py @@ -165,9 +165,13 @@ class Router(object): # look for other views that meet the predicate # criteria for iface in context_iface.__sro__[1:]: + previous_view_callable = view_callable view_callable = adapters.lookup( (IViewClassifier, request.request_iface, iface), IView, name=view_name, default=None) + # intermediate bases may lookup same view_callable + if view_callable is previous_view_callable: + continue if view_callable is not None: try: response = view_callable(context, request) |
