diff --git a/tests/json_null_tests/__init__.py b/tests/json_null_tests/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/json_null_tests/models.py b/tests/json_null_tests/models.py
new file mode 100644
index 0000000000..c4a30b3047
--- /dev/null
+++ b/tests/json_null_tests/models.py
@@ -0,0 +1,14 @@
+from django.db import models
+
+
+class JSONFieldModel(models.Model):
+    data = models.JSONField(null=True, blank=True, default=None)
+
+    class Meta:
+        required_db_features = {"supports_json_field"}
+        constraints = [
+            models.CheckConstraint(
+                check=~models.Q(data=models.Value(None, models.JSONField())),
+                name="json_data_cant_be_json_null",
+            ),
+        ]
diff --git a/tests/json_null_tests/tests.py b/tests/json_null_tests/tests.py
new file mode 100644
index 0000000000..0488040dfa
--- /dev/null
+++ b/tests/json_null_tests/tests.py
@@ -0,0 +1,10 @@
+from django.test import TestCase, skipUnlessDBFeature
+
+from .models import JSONFieldModel
+
+
+class CheckConstraintTests(TestCase):
+    @skipUnlessDBFeature("supports_json_field")
+    def test_full_clean_on_null_value(self):
+        instance = JSONFieldModel.objects.create(data=None)  # data = SQL Null value
+        instance.full_clean()
