diff --git a/django/contrib/postgres/indexes.py b/django/contrib/postgres/indexes.py index 1f7a01faf1..cbfd43c1de 100644 --- a/django/contrib/postgres/indexes.py +++ b/django/contrib/postgres/indexes.py @@ -42,8 +42,10 @@ class GinIndex(Index): def deconstruct(self): path, args, kwargs = super().deconstruct() - kwargs['fastupdate'] = self.fastupdate - kwargs['gin_pending_list_limit'] = self.gin_pending_list_limit + if self.fastupdate is not None: + kwargs['fastupdate'] = self.fastupdate + if self.gin_pending_list_limit is not None: + kwargs['gin_pending_list_limit'] = self.gin_pending_list_limit return path, args, kwargs def create_sql(self, model, schema_editor, using=''): diff --git a/tests/postgres_tests/test_indexes.py b/tests/postgres_tests/test_indexes.py index ae4895a03e..ac19f53ab8 100644 --- a/tests/postgres_tests/test_indexes.py +++ b/tests/postgres_tests/test_indexes.py @@ -84,6 +84,13 @@ class GinIndexTests(PostgreSQLTestCase): } ) + def test_deconstruct_no_args(self): + index = GinIndex(fields=['title'], name='test_title_gin') + path, args, kwargs = index.deconstruct() + self.assertEqual(path, 'django.contrib.postgres.indexes.GinIndex') + self.assertEqual(args, ()) + self.assertEqual(kwargs, {'fields': ['title'], 'name': 'test_title_gin'}) + class SchemaTests(PostgreSQLTestCase):