                  decimal_field = DecimalField(decimal_places=1, max_digits=3)
                  email_field = EmailField(max_length=100)
                  float_field = FloatField()
                  integer_field = IntegerField()
                  null_boolean_field = NullBooleanField(required=False)
                  positive_integer_field = IntegerField()
                  positive_small_integer_field = IntegerField()
                  slug_field = SlugField(allow_unicode=False, max_length=100)
                  small_integer_field = IntegerField()
                  text_field = CharField(max_length=100, style={'base_template': 'textarea.html'})
 
</s> remove     if model_field.null and not isinstance(model_field, models.NullBooleanField):
 </s> add     if model_field.null: </s> remove     TRUE_VALUES = {
        't', 'T',
        'y', 'Y', 'yes', 'YES',
        'true', 'True', 'TRUE',
        'on', 'On', 'ON',
        '1', 1,
        True
    }
    FALSE_VALUES = {
        'f', 'F',
        'n', 'N', 'no', 'NO',
        'false', 'False', 'FALSE',
        'off', 'Off', 'OFF',
        '0', 0, 0.0,
        False
    }
    NULL_VALUES = {'null', 'Null', 'NULL', '', None}
 </s> add  </s> remove class NullBooleanField(Field):
    default_error_messages = {
        'invalid': _('Must be a valid boolean.')
    }
 </s> add class NullBooleanField(BooleanField): </s> remove         super().__init__(**kwargs)
 </s> add 
                null_boolean_field = BooleanField(allow_null=True, required=False)
                  decimal_field = DecimalField(decimal_places=1, max_digits=3)
                  email_field = EmailField(max_length=100)
                  float_field = FloatField()
                  integer_field = IntegerField()
                null_boolean_field = BooleanField(allow_null=True, required=False)
                  positive_integer_field = IntegerField()
                  positive_small_integer_field = IntegerField()
                  slug_field = SlugField(allow_unicode=False, max_length=100)
                  small_integer_field = IntegerField()
                  text_field = CharField(max_length=100, style={'base_template': 'textarea.html'})
keep keep keep keep replace keep keep keep keep keep
 Merge NullBooleanField with BooleanField(allow_null=True) (#7122)

* Make `NullBooleanField` subclass `BooleanField`

This removes a lot of the redundancy that was in place becuase we
were not doing this. This maintains the `None` initial value that
was previously present, as well as disallowing `allow_null` to be
passed in.

* Remove special case for mapping `NullBooleanField`

In newer versions of Django, the `NullBooleanField` is handled the
same way as a `BooleanField(null=True)`. Given that we also support
that combination, and that our own `NullBooleanField` behaves in the
same manner, it makes sense to remove the special casing that exists
for it.

* Add test for BooleanField(null=True, choices)

* Remove special case for NullBooleanField

* Adjust mapping tests for NullBooleanField

* Fixed linting error

* Raise deprecation warning when NullBooleanField is used

* Fix linting issue in imports 
tests/test_model_serializer.py