v2.9.6 Exception KeyError on 'debug' for objects with Custom Links #4180

Closed
opened 2025-12-29 18:33:40 +01:00 by adam · 1 comment
Owner

Originally created by @mmahacek on GitHub (Oct 9, 2020).

Originally assigned to: @jeremystretch on GitHub.

Environment

  • Python version: 3.7.7
  • NetBox version: 2.9.6

Steps to Reproduce

  1. Install Netbox 2.9.6
  2. In the web UI, visit any object's page that has a custom link
    2b. In my environment only Devices, VMs, and IP Addresses have custom links, and those are the only ones experiencing the following error.
  3. Receive error:
<class 'KeyError'>
'debug'
Python version: 3.7.7
NetBox version: 2.9.6

Expected Behavior

The page should load properly

Observed Behavior

Error message received. Full error stack provided by rodvand on Slack:

Traceback (most recent call last):
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/core/handlers/exception.py", line 47, in inner
   response = get_response(request)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/core/handlers/base.py", line 179, in _get_response
   response = wrapped_callback(request, *callback_args, **callback_kwargs)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/views/generic/base.py", line 73, in view
   return self.dispatch(request, *args, **kwargs)
 File "/opt/netbox/netbox/utilities/views.py", line 123, in dispatch
   return super().dispatch(request, *args, **kwargs)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/views/generic/base.py", line 101, in dispatch
   return handler(request, *args, **kwargs)
 File "/opt/netbox/netbox/dcim/views.py", line 1094, in get
   'show_interface_graphs': Graph.objects.filter(type__model='interface').exists(),
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/shortcuts.py", line 19, in render
   content = loader.render_to_string(template_name, context, request, using=using)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/loader.py", line 62, in render_to_string
   return template.render(context, request)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/backends/django.py", line 61, in render
   return self.template.render(context)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/base.py", line 170, in render
   return self._render(context)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/test/utils.py", line 96, in instrumented_test_render
   return self.nodelist.render(context)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/base.py", line 938, in render
   bit = node.render_annotated(context)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/base.py", line 905, in render_annotated
   return self.render(context)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/loader_tags.py", line 150, in render
   return compiled_parent._render(context)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/test/utils.py", line 96, in instrumented_test_render
   return self.nodelist.render(context)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/base.py", line 938, in render
   bit = node.render_annotated(context)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/base.py", line 905, in render_annotated
   return self.render(context)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/loader_tags.py", line 62, in render
   result = block.nodelist.render(context)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/base.py", line 938, in render
   bit = node.render_annotated(context)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/base.py", line 905, in render_annotated
   return self.render(context)
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/library.py", line 192, in render
   output = self.func(*resolved_args, **resolved_kwargs)
 File "/opt/netbox/netbox/extras/templatetags/custom_links.py", line 36, in custom_links
   'debug': context['debug'],  # django.template.context_processors.debug
 File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/context.py", line 83, in __getitem__
   raise KeyError(key)
Exception Type: KeyError at /dcim/devices/28/
Exception Value: 'debug'
Originally created by @mmahacek on GitHub (Oct 9, 2020). Originally assigned to: @jeremystretch on GitHub. ### Environment * Python version: 3.7.7 * NetBox version: 2.9.6 ### Steps to Reproduce 1. Install Netbox 2.9.6 2. In the web UI, visit any object's page that has a custom link 2b. In my environment only Devices, VMs, and IP Addresses have custom links, and those are the only ones experiencing the following error. 3. Receive error: ``` <class 'KeyError'> 'debug' Python version: 3.7.7 NetBox version: 2.9.6 ``` <!-- What did you expect to happen? --> ### Expected Behavior The page should load properly <!-- What happened instead? --> ### Observed Behavior Error message received. Full error stack provided by rodvand on Slack: ``` Traceback (most recent call last): File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/core/handlers/base.py", line 179, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/views/generic/base.py", line 73, in view return self.dispatch(request, *args, **kwargs) File "/opt/netbox/netbox/utilities/views.py", line 123, in dispatch return super().dispatch(request, *args, **kwargs) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/views/generic/base.py", line 101, in dispatch return handler(request, *args, **kwargs) File "/opt/netbox/netbox/dcim/views.py", line 1094, in get 'show_interface_graphs': Graph.objects.filter(type__model='interface').exists(), File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/shortcuts.py", line 19, in render content = loader.render_to_string(template_name, context, request, using=using) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/loader.py", line 62, in render_to_string return template.render(context, request) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/backends/django.py", line 61, in render return self.template.render(context) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/base.py", line 170, in render return self._render(context) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/test/utils.py", line 96, in instrumented_test_render return self.nodelist.render(context) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/base.py", line 938, in render bit = node.render_annotated(context) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/base.py", line 905, in render_annotated return self.render(context) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/loader_tags.py", line 150, in render return compiled_parent._render(context) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/test/utils.py", line 96, in instrumented_test_render return self.nodelist.render(context) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/base.py", line 938, in render bit = node.render_annotated(context) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/base.py", line 905, in render_annotated return self.render(context) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/loader_tags.py", line 62, in render result = block.nodelist.render(context) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/base.py", line 938, in render bit = node.render_annotated(context) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/base.py", line 905, in render_annotated return self.render(context) File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/library.py", line 192, in render output = self.func(*resolved_args, **resolved_kwargs) File "/opt/netbox/netbox/extras/templatetags/custom_links.py", line 36, in custom_links 'debug': context['debug'], # django.template.context_processors.debug File "/opt/netbox-2.9.6/venv/lib/python3.7/site-packages/django/template/context.py", line 83, in __getitem__ raise KeyError(key) Exception Type: KeyError at /dcim/devices/28/ Exception Value: 'debug' ```
adam added the type: bugstatus: accepted labels 2025-12-29 18:33:40 +01:00
adam closed this issue 2025-12-29 18:33:40 +01:00
Author
Owner

@mmahacek commented on GitHub (Oct 9, 2020):

For what it's worth, I found commenting f35715683e/netbox/extras/templatetags/custom_links.py (L36) appears to sidestep the issue.

@mmahacek commented on GitHub (Oct 9, 2020): For what it's worth, I found commenting https://github.com/netbox-community/netbox/blob/f35715683ec595ada50963e6a4e815a1ebbeb9a4/netbox/extras/templatetags/custom_links.py#L36 appears to sidestep the issue.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#4180