diff options
| author | Paul Everitt <paul@agendaless.com> | 2013-08-13 13:58:56 -0400 |
|---|---|---|
| committer | Paul Everitt <paul@agendaless.com> | 2013-08-13 13:58:56 -0400 |
| commit | a66e00e9bd51fdffd85fef14e83f12502f2d864e (patch) | |
| tree | 43eb06f24df2818e2db5a947e9866c8076257e91 /docs/narr/viewconfig.rst | |
| parent | bf84d90b4dccb9fc52c8fe385e52f7a63e9a5535 (diff) | |
| parent | 5ae91a8ef06c4484bf748c7be578b28d0ca0f12c (diff) | |
| download | pyramid-a66e00e9bd51fdffd85fef14e83f12502f2d864e.tar.gz pyramid-a66e00e9bd51fdffd85fef14e83f12502f2d864e.tar.bz2 pyramid-a66e00e9bd51fdffd85fef14e83f12502f2d864e.zip | |
Merge remote-tracking branch 'origin/master' into docs.gettingstarted
Conflicts:
docs/index.rst
docs/latexindex.rst
setup.py
Diffstat (limited to 'docs/narr/viewconfig.rst')
| -rw-r--r-- | docs/narr/viewconfig.rst | 43 |
1 files changed, 36 insertions, 7 deletions
diff --git a/docs/narr/viewconfig.rst b/docs/narr/viewconfig.rst index 047898cfe..e09fd83ab 100644 --- a/docs/narr/viewconfig.rst +++ b/docs/narr/viewconfig.rst @@ -290,9 +290,9 @@ configured view. of the ``REQUEST_METHOD`` of the :term:`WSGI` environment. ``request_param`` - This value can be any string or a sequence of strings. A view declaration - with this argument ensures that the view will only be called when the - :term:`request` has a key in the ``request.params`` dictionary (an HTTP + This value can be any string or a sequence of strings. A view declaration + with this argument ensures that the view will only be called when the + :term:`request` has a key in the ``request.params`` dictionary (an HTTP ``GET`` or ``POST`` variable) that has a name which matches the supplied value. @@ -306,8 +306,6 @@ configured view. consideration of keys and values in the ``request.params`` dictionary. ``match_param`` - .. versionadded:: 1.2 - This param may be either a single string of the format "key=value" or a dict of key/value pairs. @@ -324,6 +322,8 @@ configured view. If ``match_param`` is not supplied, the view will be invoked without consideration of the keys and values in ``request.matchdict``. + .. versionadded:: 1.2 + ``containment`` This value should be a reference to a Python class or :term:`interface` that a parent object in the context resource's :term:`lineage` must provide @@ -505,7 +505,7 @@ configuration stanza: .. code-block:: python :linenos: - config.add_view('mypackage.views.my_view', route_name='ok', + config.add_view('mypackage.views.my_view', route_name='ok', request_method='POST', permission='read') All arguments to ``view_config`` may be omitted. For example: @@ -557,6 +557,35 @@ form of :term:`declarative configuration`, while :meth:`pyramid.config.Configurator.add_view` is a form of :term:`imperative configuration`. However, they both do the same thing. +Inverting Predicate Values +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can invert the meaning of any predicate value by wrapping it in a call to +:class:`pyramid.config.not_`. + +.. code-block:: python + :linenos: + + from pyramid.config import not_ + + config.add_view( + 'mypackage.views.my_view', + route_name='ok', + request_method=not_('POST') + ) + +The above example will ensure that the view is called if the request method +is *not* ``POST``, at least if no other view is more specific. + +This technique of wrapping a predicate value in ``not_`` can be used anywhere +predicate values are accepted: + +- :meth:`pyramid.config.Configurator.add_view` + +- :meth:`pyramid.view.view_config` + +.. versionadded:: 1.5 + .. index:: single: view_config placement @@ -802,7 +831,7 @@ of this: config.add_view( RESTView, route_name='rest', attr='delete', request_method='DELETE') -To reduce the amount of repetion in the ``config.add_view`` statements, we +To reduce the amount of repetition in the ``config.add_view`` statements, we can move the ``route_name='rest'`` argument to a ``@view_default`` class decorator on the RESTView class: |
