diff options
| author | Bert JW Regeer <bertjw@regeer.org> | 2015-10-20 22:47:44 -0600 |
|---|---|---|
| committer | Bert JW Regeer <bertjw@regeer.org> | 2015-10-20 23:21:27 -0600 |
| commit | a3794dc4ae90205f88652971d441c4db2bdd04da (patch) | |
| tree | 0bd09ff79c55fe0ba5848457ba91219f02b33d84 | |
| parent | d11119922ec91da838b81f0c7ae5855adc596b79 (diff) | |
| download | pyramid-a3794dc4ae90205f88652971d441c4db2bdd04da.tar.gz pyramid-a3794dc4ae90205f88652971d441c4db2bdd04da.tar.bz2 pyramid-a3794dc4ae90205f88652971d441c4db2bdd04da.zip | |
rendered_view is now part of the pipeline
This means that it can be overriden, and is no longer static. With great
power comes great responsibility...
This also allows the user to insert view derivations over the
rendered_view. This would allow the same sort of functionality as
the BeforeRenderer event, by allowing the derivation to modify the
Response/dictionary that the view returned.
| -rw-r--r-- | pyramid/config/views.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/pyramid/config/views.py b/pyramid/config/views.py index 0d6f3c43f..3a278a94f 100644 --- a/pyramid/config/views.py +++ b/pyramid/config/views.py @@ -1015,8 +1015,7 @@ class ViewsConfiguratorMixin(object): def _apply_view_derivations(self, view, **kw): d = pyramid.config.derivations # These inner derivations have fixed order - inner_derivers = [('mapped_view', (d.mapped_view, None)), - ('rendered_view', (d.rendered_view, None))] + inner_derivers = [('mapped_view', (d.mapped_view, None))] outer_derivers = [('predicated_view', (d.predicated_view, None)), ('attr_wrapped_view', (d.attr_wrapped_view, None)),] @@ -1079,6 +1078,9 @@ class ViewsConfiguratorMixin(object): def add_view_derivation(self, name, factory, default, under=None, over=None): + if under is None and over is None: + over = 'decorated_view' + factory = self.maybe_dotted(factory) discriminator = ('view option', name) intr = self.introspectable( @@ -1115,6 +1117,8 @@ class ViewsConfiguratorMixin(object): self.add_view_derivation(name, deriver, default=None, under=after) after = name + self.add_view_derivation('rendered_view', d.rendered_view, default=None, under=pyramid.util.FIRST, over='decorated_view') + def derive_view(self, view, attr=None, renderer=None): """ Create a :term:`view callable` using the function, instance, |
