          self.assertEqual(repr(TestSerializer()), expected)
  
      def test_json_field(self):
          class JSONFieldModel(models.Model):
              json_field = postgres_fields.JSONField()
              json_field_with_encoder = postgres_fields.JSONField(encoder=DjangoJSONEncoder)
  
 
</s> remove             (postgres_fields and isinstance(model_field, postgres_fields.JSONField)):
 </s> add             (postgres_fields and isinstance(model_field, postgres_fields.JSONField)) or \
            (hasattr(models, 'JSONField') and isinstance(model_field, models.JSONField)): </s> remove         if postgres_fields and isinstance(model_field, postgres_fields.JSONField):
 </s> add         is_django_jsonfield = hasattr(models, 'JSONField') and isinstance(model_field, models.JSONField)
        if (postgres_fields and isinstance(model_field, postgres_fields.JSONField)) or is_django_jsonfield:
    @pytest.mark.skipif(hasattr(models, 'JSONField'), reason='has models.JSONField')
          self.assertEqual(repr(TestSerializer()), expected)
  
    @pytest.mark.skipif(hasattr(models, 'JSONField'), reason='has models.JSONField')
      def test_json_field(self):
          class JSONFieldModel(models.Model):
              json_field = postgres_fields.JSONField()
              json_field_with_encoder = postgres_fields.JSONField(encoder=DjangoJSONEncoder)
  
keep add keep keep keep keep keep
 Add support for Django 3.1 JSONField (#7467)

Django 3.1 adds a new generic JSONField to replace the PostgreSQL-specific one. This adds support for the new field type, which should behave the same as the existing PostgreSQL field.

Django's new JSONField also includes support for a custom "decoder", so add support for that in the serializer field. 
tests/test_model_serializer.py