Closed
Description
Checklist
- I have verified that that issue exists against the
master
branch of Django REST framework. - I have searched for similar issues in both open and closed tickets and cannot find a duplicate.
- This is not a usage question. (Those should be directed to the discussion group instead.)
- This cannot be dealt with as a third party library. (We prefer new functionality to be in the form of third party libraries where possible.)
- I have reduced the issue to the simplest possible case.
- I have included a failing test as a pull request. (If you are unable to do so we can still accept the issue.)
Steps to reproduce
Create a serializer as below with the test data
from django.http import QueryDict
from rest_framework import serializers
class TestSerializer(serializers.Serializer):
is_active = serializers.NullBooleanField(required=False)
s_dict = TestSerializer(data={})
s_dict.is_valid()
s_qdict = TestSerializer(data=QueryDict())
s_qdict.is_valid()
Expected behavior
s_dict
and s_qdict
has the same value which is is_active: None
Actual behavior
s_dict
returns is_active: None
but s_qdict
returns is_active: False
NullBooleanField
was primarily used to avoid default_empty_html
from BooleanField
. Now that it is merged what is the alternative?