-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Closed
Labels
severity: mediumResults in substantial degraded or broken functionality for specfic workflowsResults in substantial degraded or broken functionality for specfic workflowsstatus: acceptedThis issue has been accepted for implementationThis issue has been accepted for implementationtype: bugA confirmed report of unexpected behavior in the applicationA confirmed report of unexpected behavior in the application
Description
NetBox version
v3.3.10
Python version
3.8
Steps to Reproduce
- install/enable a plugin
- perform some actions, so that the changelog contains log entries related to that plugin in the top 10
- disable the plugin (remove it from PLUGINS
- restart netbox
- open the homepage
Expected Behavior
Homepage is shown
Observed Behavior
An error is thrown referencing the changelog object of the disabled plugin
Traceback (most recent call last):
File "/opt/netbox/venv/lib/python3.9/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/views/generic/base.py", line 103, in view
return self.dispatch(request, *args, **kwargs)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/views/generic/base.py", line 142, in dispatch
return handler(request, *args, **kwargs)
File "/opt/netbox/netbox/netbox/views/misc.py", line 130, in get
return render(request, self.template_name, {
File "/opt/netbox/venv/lib/python3.9/site-packages/django/shortcuts.py", line 24, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/loader.py", line 62, in render_to_string
return template.render(context, request)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/backends/django.py", line 62, in render
return self.template.render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 175, in render
return self._render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
return self.nodelist.render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 1005, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 966, in render_annotated
return self.render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
return compiled_parent._render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
return self.nodelist.render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 1005, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 966, in render_annotated
return self.render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/loader_tags.py", line 157, in render
return compiled_parent._render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
return self.nodelist.render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 1005, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 966, in render_annotated
return self.render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/loader_tags.py", line 63, in render
result = block.nodelist.render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 1005, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 966, in render_annotated
return self.render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/loader_tags.py", line 63, in render
result = block.nodelist.render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 1005, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 966, in render_annotated
return self.render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/defaulttags.py", line 322, in render
return nodelist.render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 1005, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 966, in render_annotated
return self.render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django_tables2/templatetags/django_tables2.py", line 167, in render
return template.render(context={"table": table}, request=request)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/backends/django.py", line 62, in render
return self.template.render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 175, in render
return self._render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/test/utils.py", line 111, in instrumented_test_render
return self.nodelist.render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 1005, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/base.py", line 966, in render_annotated
return self.render(context)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/template/defaulttags.py", line 321, in render
if match:
File "/opt/netbox/venv/lib/python3.9/site-packages/django_tables2/rows.py", line 325, in __len__
length = len(self.data)
File "/opt/netbox/venv/lib/python3.9/site-packages/django_tables2/data.py", line 156, in __len__
self._length = len(self.data)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/db/models/query.py", line 376, in __len__
self._fetch_all()
File "/opt/netbox/venv/lib/python3.9/site-packages/django/db/models/query.py", line 1869, in _fetch_all
self._prefetch_related_objects()
File "/opt/netbox/venv/lib/python3.9/site-packages/django/db/models/query.py", line 1258, in _prefetch_related_objects
prefetch_related_objects(self._result_cache, *self._prefetch_related_lookups)
File "/opt/netbox/venv/lib/python3.9/site-packages/django/db/models/query.py", line 2298, in prefetch_related_objects
obj_list, additional_lookups = prefetch_one_level(
File "/opt/netbox/venv/lib/python3.9/site-packages/django/db/models/query.py", line 2440, in prefetch_one_level
) = prefetcher.get_prefetch_queryset(instances, lookup.get_current_queryset(level))
File "/opt/netbox/venv/lib/python3.9/site-packages/django/contrib/contenttypes/fields.py", line 199, in get_prefetch_queryset
ret_val.extend(ct.get_all_objects_for_this_type(pk__in=fkeys))
File "/opt/netbox/venv/lib/python3.9/site-packages/django/contrib/contenttypes/models.py", line 185, in get_all_objects_for_this_type
return self.model_class()._base_manager.using(self._state.db).filter(**kwargs)
AttributeError: 'NoneType' object has no attribute '_base_manager'
I ran again this, when I had to disable a plugin after upgrading to v3.4, as the plugin was not yet compatible.
It would be great if the changelog is not that sensitive to disabled/removed plugins. I see this issue surfaces regularly and on different places where the changelog is shown
julianstolp and petersonbasso
Metadata
Metadata
Assignees
Labels
severity: mediumResults in substantial degraded or broken functionality for specfic workflowsResults in substantial degraded or broken functionality for specfic workflowsstatus: acceptedThis issue has been accepted for implementationThis issue has been accepted for implementationtype: bugA confirmed report of unexpected behavior in the applicationA confirmed report of unexpected behavior in the application