diff --git a/django/contrib/postgres/fields/array.py b/django/contrib/postgres/fields/array.py index ab57ccb1103..87c2de43b44 100644 --- a/django/contrib/postgres/fields/array.py +++ b/django/contrib/postgres/fields/array.py @@ -100,7 +100,7 @@ class ArrayField(Field): if callable(self.default): return self.default() return self.default - return '' + return None def value_to_string(self, obj): values = [] diff --git a/tests/postgres_tests/test_array.py b/tests/postgres_tests/test_array.py index 33cf837dd47..68378483ec0 100644 --- a/tests/postgres_tests/test_array.py +++ b/tests/postgres_tests/test_array.py @@ -48,6 +48,13 @@ class TestSaveLoad(TestCase): loaded = IntegerArrayModel.objects.get() self.assertEqual(loaded.field, [1]) + def test_default_null(self): + instance = NullableIntegerArrayModel() + instance.save() + loaded = NullableIntegerArrayModel.objects.get(pk=instance.pk) + self.assertEqual(loaded.field, None) + self.assertEqual(instance.field, loaded.field) + def test_null_handling(self): instance = NullableIntegerArrayModel(field=None) instance.save()