mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Server side error when creating device with custom_fields through the api #1351
Closed
opened 2025-12-29 16:31:42 +01:00 by adam
·
8 comments
No Branch/Tag Specified
main
update-changelog-comments-docs
feature-removal-issue-type
20911-dropdown
20239-plugin-menu-classes-mutable-state
21097-graphql-id-lookups
feature
fix_module_substitution
20923-dcim-templates
20044-elevation-stuck-lightmode
feature-ip-prefix-link
v4.5-beta1-release
20068-import-moduletype-attrs
20766-fix-german-translation-code-literals
20378-del-script
7604-filter-modifiers-v3
circuit-swap
12318-case-insensitive-uniqueness
20637-improve-device-q-filter
20660-script-load
19724-graphql
20614-update-ruff
14884-script
02496-max-page
19720-macaddress-interface-generic-relation
19408-circuit-terminations-export-templates
20203-openapi-check
fix-19669-api-image-download
7604-filter-modifiers
19275-fixes-interface-bulk-edit
fix-17794-get_field_value_return_list
11507-show-aggregate-and-rir-on-api
9583-add_column_specific_search_field_to_tables
v4.5.0
v4.4.10
v4.4.9
v4.5.0-beta1
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.7
v4.4.0-beta1
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.9
v4.3.0-beta2
v4.2.8
v4.3.0-beta1
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.11
v4.1.10
v4.1.9
v4.1.8
v4.2-beta1
v4.1.7
v4.1.6
v4.1.5
v4.1.4
v4.1.3
v4.1.2
v4.1.1
v4.1.0
v4.0.11
v4.0.10
v4.0.9
v4.1-beta1
v4.0.8
v4.0.7
v4.0.6
v4.0.5
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v3.7.8
v3.7.7
v4.0-beta2
v3.7.6
v3.7.5
v4.0-beta1
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.9
v3.6.8
v3.6.7
v3.7-beta1
v3.6.6
v3.6.5
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.5.9
v3.6-beta2
v3.5.8
v3.6-beta1
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.4.10
v3.4.9
v3.5-beta2
v3.4.8
v3.5-beta1
v3.4.7
v3.4.6
v3.4.5
v3.4.4
v3.4.3
v3.4.2
v3.4.1
v3.4.0
v3.3.10
v3.3.9
v3.4-beta1
v3.3.8
v3.3.7
v3.3.6
v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.2.9
v3.2.8
v3.3-beta2
v3.2.7
v3.3-beta1
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.1.11
v3.1.10
v3.2-beta2
v3.1.9
v3.2-beta1
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.0.12
v3.0.11
v3.0.10
v3.1-beta1
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.11.12
v3.0-beta2
v2.11.11
v2.11.10
v3.0-beta1
v2.11.9
v2.11.8
v2.11.7
v2.11.6
v2.11.5
v2.11.4
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.10
v2.10.9
v2.11-beta1
v2.10.8
v2.10.7
v2.10.6
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10.0
v2.9.11
v2.10-beta2
v2.9.10
v2.10-beta1
v2.9.9
v2.9.8
v2.9.7
v2.9.6
v2.9.5
v2.9.4
v2.9.3
v2.9.2
v2.9.1
v2.9.0
v2.9-beta2
v2.8.9
v2.9-beta1
v2.8.8
v2.8.7
v2.8.6
v2.8.5
v2.8.4
v2.8.3
v2.8.2
v2.8.1
v2.8.0
v2.7.12
v2.7.11
v2.7.10
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.7-beta1
Solcon-2020-01-06
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.13
v2.5.12
v2.6-beta1
v2.5.11
v2.5.10
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.9
v2.5-beta2
v2.4.8
v2.5-beta1
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.7
v2.4-beta1
v2.3.6
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.3-beta2
v2.2.9
v2.3-beta1
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.6
v2.2-beta2
v2.1.5
v2.2-beta1
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.10
v2.1-beta1
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v2.0-beta3
v1.9.6
v1.9.5
v2.0-beta2
v1.9.4-r1
v1.9.3
v2.0-beta1
v1.9.2
v1.9.1
v1.9.0-r1
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.3
v1.7.2-r1
v1.7.1
v1.7.0
v1.6.3
v1.6.2-r1
v1.6.1-r1
1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.0
v1.0.7-r1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3-r1
v1.0.3
1.0.0
Labels
Clear labels
beta
breaking change
complexity: high
complexity: low
complexity: medium
needs milestone
netbox
pending closure
plugin candidate
pull-request
severity: high
severity: low
severity: medium
status: accepted
status: backlog
status: blocked
status: duplicate
status: needs owner
status: needs triage
status: revisions needed
status: under review
topic: GraphQL
topic: Internationalization
topic: OpenAPI
topic: UI/UX
topic: cabling
topic: event rules
topic: htmx navigation
topic: industrialization
topic: migrations
topic: plugins
topic: scripts
topic: templating
topic: testing
type: bug
type: deprecation
type: documentation
type: feature
type: housekeeping
type: translation
Mirrored from GitHub Pull Request
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#1351
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @kicker69101 on GitHub (Oct 26, 2017).
Issue type
[ ] Feature request
[ X ] Bug report
[ ] Documentation
Environment
Description
I'm getting a server side exception when creating an object with custom_fields. Here is the exception:
ERROR Internal Server Error: /api/dcim/devices/#012Traceback (most recent call last):#012 File "/usr/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner#012 response = get_response(request)#012 File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response#012 response = self.process_exception_by_middleware(e, request)#012 File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response#012 response = wrapped_callback(request, *callback_args, **callback_kwargs)#012 File "/usr/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view#012 return view_func(*args, **kwargs)#012 File "/usr/lib/python2.7/site-packages/rest_framework/viewsets.py", line 90, in view#012 return self.dispatch(request, *args, **kwargs)#012 File "/usr/lib/python2.7/site-packages/rest_framework/views.py", line 489, in dispatch#012 response = self.handle_exception(exc)#012 File "/usr/lib/python2.7/site-packages/rest_framework/views.py", line 449, in handle_exception#012 self.raise_uncaught_exception(exc)#012 File "/usr/lib/python2.7/site-packages/rest_framework/views.py", line 486, in dispatch#012 response = handler(request, *args, **kwargs)#012 File "/usr/lib/python2.7/site-packages/rest_framework/mixins.py", line 20, in create#012 serializer.is_valid(raise_exception=True)#012 File "/usr/lib/python2.7/site-packages/rest_framework/serializers.py", line 237, in is_valid#012 self._validated_data = self.run_validation(self.initial_data)#012 File "/usr/lib/python2.7/site-packages/rest_framework/serializers.py", line 432, in run_validation#012 value = self.to_internal_value(data)#012 File "/usr/lib/python2.7/site-packages/rest_framework/serializers.py", line 462, in to_internal_value#012 validated_value = field.run_validation(primitive_value)#012 File "/usr/lib/python2.7/site-packages/rest_framework/fields.py", line 524, in run_validation#012 value = self.to_internal_value(data)#012 File "/opt/netbox/netbox/extras/api/customfields.py", line 30, in to_internal_value#012 for field_name, value in data.items():#012AttributeError: 'unicode' object has no attribute 'items'Here is the payload:
{ "name":"***********", "device_type":1772, "device_role":31, "tenant":null, "platform":null, "serial":"#########", "asset_tag":null, "site":16, "rack":1133, "position":25, "face":0, "status":1, "primary_ip4":null, "primary_ip6":null, "comments":"", "custom_fields":{"rack_tables_id":42} }@4ndersson commented on GitHub (Oct 26, 2017):
I am getting almost the same when adding a device with custom_field.
Traceback:
Payload:
@RyanBreaker commented on GitHub (Oct 26, 2017):
@kicker69101 When posting large blocks like you have, preface it with a line with
```and end it with a line with```. It'll then include the right formatting for lines and all for code and such and make it easier to read. 👍See also: https://help.github.com/articles/creating-and-highlighting-code-blocks/
@kicker69101 commented on GitHub (Oct 26, 2017):
@RyanBreaker Thanks, I'll will attempt to do this in future. However, in this case I pulled them from log files where they were already improperly formed.
@4ndersson commented on GitHub (Oct 27, 2017):
When the data is formed as
"custom_fields": {"service_id":123456}; It looks like /opt/netbox/netbox/extras/api/customfields.py only receives the string service_id (the whole dict and the value is stripped away somewhere) but the loops in the script expects a dict.I did a few changes in customfields.py and is now only sending in
"custom_fields" : 123456. Changes made in customfields.py (ugly, but it works for now):line 30-40
line 130-140
@jeremystretch commented on GitHub (Oct 27, 2017):
@kicker69101 Please upgrade to the latest version of NetBox (v2.2.2) and try again. If you still experience this issue, please amend your post to include complete instructions for reproducing the bug, beginning with the creation of a custom field.
@kicker69101 commented on GitHub (Oct 27, 2017):
Steps to reproduce:
@jeremystretch commented on GitHub (Nov 2, 2017):
@kicker69101 I'm not able to reproduce this. Please try sending the request manually using
curl(see the docs for examples) with the server running in debug mode and post the result. And again, make sure you're running the latest version of NetBox (v.2.2.4).@jeremystretch commented on GitHub (Nov 10, 2017):
Closing due to lack of activity.