diff --git a/docs/changelog.rst b/docs/changelog.rst index d9b17fe..7d2dc15 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -19,13 +19,13 @@ are available by installing the develop branch from github. Bugfix: * Form field ``has_changed`` now correctly detects if a TagField has changed (#185) +* Admin enhance ensures ``list_display`` is a tuple (#183) Thanks to: * Christian Schneider (cnschn) for help fixing ``has_changed`` (#185) - 2.0.0, 2024-08-13 ----------------- diff --git a/tagulous/admin.py b/tagulous/admin.py index 2d4fd6c..ffee4dc 100644 --- a/tagulous/admin.py +++ b/tagulous/admin.py @@ -49,7 +49,7 @@ def get_autocomplete_fields(self, request): (tag_models.SingleTagField, tag_models.TagField), ) ] - return safe_fields + return tuple(safe_fields) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # @@ -232,6 +232,9 @@ def enhance(model, admin_class): # Add display function to admin class setattr(admin_class, display_name, _create_display(field)) + # Make it immutable + admin_class.list_display = tuple(admin_class.list_display) + # # If admin is for a tag model, ensure any inlines for tagged models are # subclasses of TaggedInlineFormSet. diff --git a/tests/test_admin.py b/tests/test_admin.py index 487187e..d853f19 100644 --- a/tests/test_admin.py +++ b/tests/test_admin.py @@ -193,7 +193,7 @@ def test_register_tag_model_class_properties(self): self.assertTrue(self.model.singletag.tag_model in self.site._registry) ma = self.site._registry[self.model.singletag.tag_model] self.assertIsInstance(ma, tag_admin.TagModelAdmin) - self.assertEqual(ma.list_display, ["name"]) + self.assertEqual(ma.list_display, ("name",)) self.assertEqual(ma.list_filter, ["count"]) self.assertEqual(ma.exclude, ["name"]) self.assertEqual(ma.actions, [])