mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-04 20:40:14 +03:00
Merge 1ce894d347
into 9c9525b130
This commit is contained in:
commit
7736930fca
|
@ -53,6 +53,9 @@ class BaseRenderer(object):
|
|||
raise NotImplementedError('Renderer class requires .render() to be implemented')
|
||||
|
||||
|
||||
_NULL_JSON = bytes('null'.encode('ascii'))
|
||||
|
||||
|
||||
class JSONRenderer(BaseRenderer):
|
||||
"""
|
||||
Renderer which serializes to JSON.
|
||||
|
@ -89,7 +92,7 @@ class JSONRenderer(BaseRenderer):
|
|||
Render `data` into JSON, returning a bytestring.
|
||||
"""
|
||||
if data is None:
|
||||
return bytes()
|
||||
return _NULL_JSON
|
||||
|
||||
renderer_context = renderer_context or {}
|
||||
indent = self.get_indent(accepted_media_type, renderer_context)
|
||||
|
|
|
@ -77,10 +77,11 @@ class Response(SimpleTemplateResponse):
|
|||
)
|
||||
return bytes(ret.encode(charset))
|
||||
|
||||
if not ret:
|
||||
if self.status_code == 204:
|
||||
del self['Content-Type']
|
||||
|
||||
return ret
|
||||
return bytes()
|
||||
else:
|
||||
return ret
|
||||
|
||||
@property
|
||||
def status_text(self):
|
||||
|
|
|
@ -376,6 +376,10 @@ class JSONRendererTests(TestCase):
|
|||
content = renderer.render(obj, 'application/json; indent=2')
|
||||
self.assertEqual(strip_trailing_whitespace(content.decode('utf-8')), _indented_repr)
|
||||
|
||||
def test_none(self):
|
||||
ret = JSONRenderer().render(None)
|
||||
self.assertEqual(None, json.loads(ret))
|
||||
|
||||
|
||||
class UnicodeJSONRendererTests(TestCase):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue
Block a user