diff --git a/netbox/netbox/views/generic/bulk_views.py b/netbox/netbox/views/generic/bulk_views.py index 2183041cf..a6f6ec738 100644 --- a/netbox/netbox/views/generic/bulk_views.py +++ b/netbox/netbox/views/generic/bulk_views.py @@ -891,7 +891,8 @@ class BulkRenameView(GetReturnURLMixin, BaseMultiObjectView): self.form = _Form - # Remove changelog_message field if model doesn't support change logging + # Remove changelog_message field if model doesn't support change logging. + # Mutating base_fields is safe here because _Form is created fresh per request above. if not issubclass(self.queryset.model, ChangeLoggingMixin): self.form.base_fields.pop('changelog_message', None) diff --git a/netbox/utilities/testing/views.py b/netbox/utilities/testing/views.py index 3f76757c7..38edc8aa9 100644 --- a/netbox/utilities/testing/views.py +++ b/netbox/utilities/testing/views.py @@ -1051,6 +1051,8 @@ class ViewTestCases: @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) def test_bulk_rename_objects_with_changelog_message(self): + if not issubclass(self.model, ChangeLoggingMixin): + self.skipTest("Model does not support change logging") objects = self._get_queryset().all()[:3] pk_list = [obj.pk for obj in objects] data = {