Skip to content

Editing multiple Interfaces - KeyError #4030

Closed
@kuhball

Description

@kuhball

Environment

  • Python version: 3.7.3
  • NetBox version: 2.7.2

Steps to Reproduce

  1. Edit multiple interfaces from a device of choice
  2. Set "mode" to "tagged" and add some vlans
  3. Apply

Expected Behavior

Tagged VLANs are saved in all interfaces

Observed Behavior

<class 'TypeError'>

Direct assignment to the forward side of a many-to-many set is prohibited. Use tagged_vlans.set() instead.

Stacktrace:

netbox_1         | 14:57:10: Internal Server Error: /dcim/devices/1/interfaces/edit/
netbox_1         | Traceback (most recent call last):
netbox_1         |   File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
netbox_1         |     response = get_response(request)
netbox_1         |   File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 115, in _get_response
netbox_1         |     response = self.process_exception_by_middleware(e, request)
netbox_1         |   File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 113, in _get_response
netbox_1         |     response = wrapped_callback(request, *callback_args, **callback_kwargs)
netbox_1         |   File "/usr/local/lib/python3.7/site-packages/django/views/generic/base.py", line 71, in view
netbox_1         |     return self.dispatch(request, *args, **kwargs)
netbox_1         |   File "/usr/local/lib/python3.7/site-packages/django/contrib/auth/mixins.py", line 85, in dispatch
netbox_1         |     return super().dispatch(request, *args, **kwargs)
netbox_1         |   File "/usr/local/lib/python3.7/site-packages/django/views/generic/base.py", line 97, in dispatch
netbox_1         |     return handler(request, *args, **kwargs)
netbox_1         |   File "/opt/netbox/netbox/utilities/views.py", line 638, in post
netbox_1         |     if form.is_valid():
netbox_1         |   File "/usr/local/lib/python3.7/site-packages/django/forms/forms.py", line 185, in is_valid
netbox_1         |     return self.is_bound and not self.errors
netbox_1         |   File "/usr/local/lib/python3.7/site-packages/django/forms/forms.py", line 180, in errors
netbox_1         |     self.full_clean()
netbox_1         |   File "/usr/local/lib/python3.7/site-packages/django/forms/forms.py", line 382, in full_clean
netbox_1         |     self._clean_form()
netbox_1         |   File "/usr/local/lib/python3.7/site-packages/django/forms/forms.py", line 409, in _clean_form
netbox_1         |     cleaned_data = self.clean()
netbox_1         |   File "/opt/netbox/netbox/dcim/forms.py", line 112, in clean
netbox_1         |     valid_sites = [None, self.cleaned_data['device'].site]
netbox_1         | KeyError: 'device'

Tested this in a fresh docker environment. Worked with 2.6.X.

Metadata

Metadata

Assignees

Labels

status: acceptedThis issue has been accepted for implementationtype: bugA confirmed report of unexpected behavior in the application

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions