File tree 2 files changed +21
-3
lines changed
2 files changed +21
-3
lines changed Original file line number Diff line number Diff line change @@ -385,8 +385,10 @@ def get_value(self, dictionary):
385
385
# If the field is blank, and null is a valid value then
386
386
# determine if we should use null instead.
387
387
return '' if getattr (self , 'allow_blank' , False ) else None
388
- elif ret == '' and self .default :
389
- return empty
388
+ elif ret == '' and not self .required :
389
+ # If the field is blank, and emptyness is valid then
390
+ # determine if we should use emptyness instead.
391
+ return '' if getattr (self , 'allow_blank' , False ) else empty
390
392
return ret
391
393
return dictionary .get (self .field_name , empty )
392
394
Original file line number Diff line number Diff line change @@ -253,14 +253,30 @@ class TestSerializer(serializers.Serializer):
253
253
254
254
255
255
class TestHTMLInput :
256
- def test_empty_html_charfield (self ):
256
+ def test_empty_html_charfield_with_default (self ):
257
257
class TestSerializer (serializers .Serializer ):
258
258
message = serializers .CharField (default = 'happy' )
259
259
260
260
serializer = TestSerializer (data = QueryDict ('' ))
261
261
assert serializer .is_valid ()
262
262
assert serializer .validated_data == {'message' : 'happy' }
263
263
264
+ def test_empty_html_charfield_without_default (self ):
265
+ class TestSerializer (serializers .Serializer ):
266
+ message = serializers .CharField (allow_blank = True )
267
+
268
+ serializer = TestSerializer (data = QueryDict ('message=' ))
269
+ assert serializer .is_valid ()
270
+ assert serializer .validated_data == {'message' : '' }
271
+
272
+ def test_empty_html_charfield_without_default_not_required (self ):
273
+ class TestSerializer (serializers .Serializer ):
274
+ message = serializers .CharField (allow_blank = True , required = False )
275
+
276
+ serializer = TestSerializer (data = QueryDict ('message=' ))
277
+ assert serializer .is_valid ()
278
+ assert serializer .validated_data == {'message' : '' }
279
+
264
280
def test_empty_html_integerfield (self ):
265
281
class TestSerializer (serializers .Serializer ):
266
282
message = serializers .IntegerField (default = 123 )
You can’t perform that action at this time.
0 commit comments