@@ -150,6 +150,8 @@ def _encode_data(self, data, format=None, content_type=None):
150
150
"""
151
151
Encode the data returning a two tuple of (bytes, content_type)
152
152
"""
153
+ if data is None :
154
+ return (b'' , content_type )
153
155
154
156
assert format is None or content_type is None , (
155
157
'You may not set both `format` and `content_type`.'
@@ -161,9 +163,6 @@ def _encode_data(self, data, format=None, content_type=None):
161
163
except AttributeError :
162
164
pass
163
165
164
- if data is None :
165
- data = ''
166
-
167
166
# Content type specified explicitly, treat data as a raw bytestring
168
167
ret = force_bytes (data , settings .DEFAULT_CHARSET )
169
168
@@ -181,6 +180,7 @@ def _encode_data(self, data, format=None, content_type=None):
181
180
182
181
# Use format and render the data into a bytestring
183
182
renderer = self .renderer_classes [format ]()
183
+ ret = renderer .render (data )
184
184
185
185
# Determine the content-type header from the renderer
186
186
content_type = renderer .media_type
@@ -189,14 +189,9 @@ def _encode_data(self, data, format=None, content_type=None):
189
189
content_type , renderer .charset
190
190
)
191
191
192
- if data is None :
193
- ret = ''
194
- else :
195
- ret = renderer .render (data )
196
-
197
- # Coerce text to bytes if required.
198
- if isinstance (ret , str ) and renderer .charset :
199
- ret = ret .encode (renderer .charset )
192
+ # Coerce text to bytes if required.
193
+ if isinstance (ret , str ):
194
+ ret = ret .encode (renderer .charset )
200
195
201
196
return ret , content_type
202
197
0 commit comments