diff --git a/CHANGES.rst b/CHANGES.rst index 7772ac7e29..32963027cc 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -31,6 +31,10 @@ Features to ``add_route`` is the empty string (``''``). See https://github.com/Pylons/pyramid/pull/3420 +- No longer define ``pyramid.request.Request.json_body`` which is already + provided by WebOb. This allows the attribute to now be settable. + See https://github.com/Pylons/pyramid/pull/3447 + Bug Fixes --------- diff --git a/docs/api/request.rst b/docs/api/request.rst index 50a34884b0..e7b2edc9a0 100644 --- a/docs/api/request.rst +++ b/docs/api/request.rst @@ -283,17 +283,6 @@ .. automethod:: resource_path - .. attribute:: json_body - - This property will return the JSON-decoded variant of the request - body. If the request body is not well-formed JSON, or there is no - body associated with this request, this property will raise an - exception. - - .. seealso:: - - See also :ref:`request_json_body`. - .. method:: set_property(callable, name=None, reify=False) Add a callable or a property descriptor to the request instance. diff --git a/docs/narr/webob.rst b/docs/narr/webob.rst index 665bbddc93..e0524583fd 100644 --- a/docs/narr/webob.rst +++ b/docs/narr/webob.rst @@ -287,7 +287,7 @@ that has a body suitable for reading via ``request.json_body`` using Python's import json json_payload = json.dumps({'a':1}) - headers = {'Content-Type':'application/json; charset=utf-8'} + headers = {'Content-Type':'application/json'} req = urllib2.Request('http://localhost:6543/', json_payload, headers) resp = urllib2.urlopen(req) diff --git a/src/pyramid/request.py b/src/pyramid/request.py index 23c00468dc..b9bd7451af 100644 --- a/src/pyramid/request.py +++ b/src/pyramid/request.py @@ -1,5 +1,4 @@ from collections import deque -import json from zope.interface import implementer from zope.interface.interface import InterfaceClass @@ -229,10 +228,6 @@ def is_response(self, ob): return False return adapted is ob - @property - def json_body(self): - return json.loads(text_(self.body, self.charset)) - def route_request_iface(name, bases=()): # zope.interface treats the __name__ as the __doc__ and changes __name__