Error trying to POST to api/ipam/vlans/ via API #2552

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

Originally created by @michaelmfranz on GitHub (Apr 26, 2019).

Issue

Trying to create VLAN, I get the same error in code and via swagger:

TypeError at /api/ipam/vlans/
int() argument must be a string, a bytes-like object or a number, not 'dict'

  • I am able to perform the required steps via normal web front end.
  • I get the same error via swagger as in my code.
  • I am able to GET and POST other objects without an issue

Dotnet class structure

public class VLAN
{
public int id { get; set; }
public int vid { get; set; }
public string name { get; set; }
public string description { get; set; }
public string tags { get; set; }
public string display_name { get; set; }
public string created { get; set; }
public string last_updated { get; set; }
public Site site { get; set; }
public Group group { get; set; }
public Tenant tenant { get; set; }
public Status status { get; set; }
public Role role { get; set; }
public Custom_Fields custom_fields { get; set; }
}

public class Site
{
public int id { get; set; }
public string url { get; set; }
public string name { get; set; }
public string slug { get; set; }
}
public class Group
{
public int id { get; set; }
public string url { get; set; }
public string name { get; set; }
public string slug { get; set; }
}
public class Tenant
{
public int id { get; set; }
public string url { get; set; }
public string name { get; set; }
public string slug { get; set; }
}
public class Status
{
public string label { get; set; }
public int value { get; set; }
}
public class Role
{
public int id { get; set; }
public string url { get; set; }
public string name { get; set; }
public string slug { get; set; }
}
public class Custom_Fields
{
}

json data

{
"created": "2019-04-17",
"custom_fields": {},
"description": "vocus-nbn-s-tag-20",
"display_name": "1 (Vocus NBN S-TAG 20)",
"group": {
"id": 1,
"name": "Vocus NBN S-TAG 20",
"slug": "vocus-nbn-s-tag-20",
"url": "http://172.17.175.235:8000/api/ipam/vlan-groups/1/"
},
"id": 1,
"last_updated": "2019-04-17T04:12:19.133416Z",
"name": "Vocus NBN S-TAG 20",
"role": null,
"site": {
"id": 1,
"name": "NEXTDC S1",
"slug": "nextdc-s1",
"url": "http://172.17.175.235:8000/api/dcim/sites/1/"
},
"status": {
"label": "Active",
"value": 1
},
"tags": "",
"tenant": null,
"vid": 1
}

Error info:

TypeError at /api/ipam/vlans/
int() argument must be a string, a bytes-like object or a number, not 'dict'

Request Method: POST
Request URL: http://172.17.175.235:8000/api/ipam/vlans/
Django Version: 2.0.13
Python Executable: /usr/bin/python3
Python Version: 3.6.7
Python Path: ['/opt/netbox-2.4.2/netbox', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']
Server time: Fri, 26 Apr 2019 00:36:50 +0000
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'corsheaders',
'debug_toolbar',
'django_filters',
'django_tables2',
'mptt',
'rest_framework',
'taggit',
'taggit_serializer',
'timezone_field',
'circuits',
'dcim',
'ipam',
'extras',
'secrets',
'tenancy',
'users',
'utilities',
'virtualization',
'drf_yasg']
Installed Middleware:
('debug_toolbar.middleware.DebugToolbarMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'utilities.middleware.ExceptionHandlingMiddleware',
'utilities.middleware.LoginRequiredMiddleware',
'utilities.middleware.APIVersionMiddleware',
'extras.middleware.ObjectChangeMiddleware')

Traceback:

File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/exception.py" in inner
35. response = get_response(request)

File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/base.py" in _get_response
128. response = self.process_exception_by_middleware(e, request)

File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/base.py" in _get_response
126. response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/usr/local/lib/python3.6/dist-packages/django/views/decorators/csrf.py" in wrapped_view
54. return view_func(*args, **kwargs)

File "/usr/local/lib/python3.6/dist-packages/rest_framework/viewsets.py" in view
103. return self.dispatch(request, *args, **kwargs)

File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py" in dispatch
483. response = self.handle_exception(exc)

File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py" in handle_exception
443. self.raise_uncaught_exception(exc)

File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py" in dispatch
480. response = handler(request, *args, **kwargs)

File "/usr/local/lib/python3.6/dist-packages/rest_framework/mixins.py" in create
20. serializer.is_valid(raise_exception=True)

File "/usr/local/lib/python3.6/dist-packages/rest_framework/serializers.py" in is_valid
236. self._validated_data = self.run_validation(self.initial_data)

File "/usr/local/lib/python3.6/dist-packages/rest_framework/serializers.py" in run_validation
434. value = self.to_internal_value(data)

File "/usr/local/lib/python3.6/dist-packages/rest_framework/serializers.py" in to_internal_value
464. validated_value = field.run_validation(primitive_value)

File "/usr/local/lib/python3.6/dist-packages/rest_framework/serializers.py" in run_validation
434. value = self.to_internal_value(data)

File "/opt/netbox-2.4.2/netbox/utilities/api.py" in to_internal_value
173. return self.Meta.model.objects.get(pk=data)

File "/usr/local/lib/python3.6/dist-packages/django/db/models/manager.py" in manager_method
82. return getattr(self.get_queryset(), name)(*args, **kwargs)

File "/usr/local/lib/python3.6/dist-packages/django/db/models/query.py" in get
394. clone = self.filter(*args, **kwargs)

File "/usr/local/lib/python3.6/dist-packages/django/db/models/query.py" in filter
839. return self._filter_or_exclude(False, *args, **kwargs)

File "/usr/local/lib/python3.6/dist-packages/django/db/models/query.py" in _filter_or_exclude
857. clone.query.add_q(Q(*args, **kwargs))

File "/usr/local/lib/python3.6/dist-packages/django/db/models/sql/query.py" in add_q
1253. clause, _ = self._add_q(q_object, self.used_aliases)

File "/usr/local/lib/python3.6/dist-packages/django/db/models/sql/query.py" in _add_q
1277. split_subq=split_subq,

File "/usr/local/lib/python3.6/dist-packages/django/db/models/sql/query.py" in build_filter
1215. condition = self.build_lookup(lookups, col, value)

File "/usr/local/lib/python3.6/dist-packages/django/db/models/sql/query.py" in build_lookup
1085. lookup = lookup_class(lhs, rhs)

File "/usr/local/lib/python3.6/dist-packages/django/db/models/lookups.py" in init
18. self.rhs = self.get_prep_lookup()

File "/usr/local/lib/python3.6/dist-packages/django/db/models/lookups.py" in get_prep_lookup
68. return self.lhs.output_field.get_prep_value(self.rhs)

File "/usr/local/lib/python3.6/dist-packages/django/db/models/fields/init.py" in get_prep_value
947. return int(value)

Exception Type: TypeError at /api/ipam/vlans/
Exception Value: int() argument must be a string, a bytes-like object or a number, not 'dict'

Originally created by @michaelmfranz on GitHub (Apr 26, 2019). Issue ----------------------------------------------------------------- Trying to create VLAN, I get the same error in code and via swagger: TypeError at /api/ipam/vlans/ int() argument must be a string, a bytes-like object or a number, not 'dict' - I am able to perform the required steps via normal web front end. - I get the same error via swagger as in my code. - I am able to GET and POST other objects without an issue ----------------------------------------------------------------- Dotnet class structure ------------------------------------------------------------------ public class VLAN { public int id { get; set; } public int vid { get; set; } public string name { get; set; } public string description { get; set; } public string tags { get; set; } public string display_name { get; set; } public string created { get; set; } public string last_updated { get; set; } public Site site { get; set; } public Group group { get; set; } public Tenant tenant { get; set; } public Status status { get; set; } public Role role { get; set; } public Custom_Fields custom_fields { get; set; } } public class Site { public int id { get; set; } public string url { get; set; } public string name { get; set; } public string slug { get; set; } } public class Group { public int id { get; set; } public string url { get; set; } public string name { get; set; } public string slug { get; set; } } public class Tenant { public int id { get; set; } public string url { get; set; } public string name { get; set; } public string slug { get; set; } } public class Status { public string label { get; set; } public int value { get; set; } } public class Role { public int id { get; set; } public string url { get; set; } public string name { get; set; } public string slug { get; set; } } public class Custom_Fields { } ----------------------------------------------------------------- json data ----------------------------------------------------------------- { "created": "2019-04-17", "custom_fields": {}, "description": "vocus-nbn-s-tag-20", "display_name": "1 (Vocus NBN S-TAG 20)", "group": { "id": 1, "name": "Vocus NBN S-TAG 20", "slug": "vocus-nbn-s-tag-20", "url": "http://172.17.175.235:8000/api/ipam/vlan-groups/1/" }, "id": 1, "last_updated": "2019-04-17T04:12:19.133416Z", "name": "Vocus NBN S-TAG 20", "role": null, "site": { "id": 1, "name": "NEXTDC S1", "slug": "nextdc-s1", "url": "http://172.17.175.235:8000/api/dcim/sites/1/" }, "status": { "label": "Active", "value": 1 }, "tags": "", "tenant": null, "vid": 1 } Error info: ----------------------------------------------------------------- TypeError at /api/ipam/vlans/ int() argument must be a string, a bytes-like object or a number, not 'dict' Request Method: POST Request URL: http://172.17.175.235:8000/api/ipam/vlans/ Django Version: 2.0.13 Python Executable: /usr/bin/python3 Python Version: 3.6.7 Python Path: ['/opt/netbox-2.4.2/netbox', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages'] Server time: Fri, 26 Apr 2019 00:36:50 +0000 Installed Applications: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'corsheaders', 'debug_toolbar', 'django_filters', 'django_tables2', 'mptt', 'rest_framework', 'taggit', 'taggit_serializer', 'timezone_field', 'circuits', 'dcim', 'ipam', 'extras', 'secrets', 'tenancy', 'users', 'utilities', 'virtualization', 'drf_yasg'] Installed Middleware: ('debug_toolbar.middleware.DebugToolbarMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'utilities.middleware.ExceptionHandlingMiddleware', 'utilities.middleware.LoginRequiredMiddleware', 'utilities.middleware.APIVersionMiddleware', 'extras.middleware.ObjectChangeMiddleware') Traceback: File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/exception.py" in inner 35. response = get_response(request) File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/base.py" in _get_response 128. response = self.process_exception_by_middleware(e, request) File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/base.py" in _get_response 126. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/local/lib/python3.6/dist-packages/django/views/decorators/csrf.py" in wrapped_view 54. return view_func(*args, **kwargs) File "/usr/local/lib/python3.6/dist-packages/rest_framework/viewsets.py" in view 103. return self.dispatch(request, *args, **kwargs) File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py" in dispatch 483. response = self.handle_exception(exc) File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py" in handle_exception 443. self.raise_uncaught_exception(exc) File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py" in dispatch 480. response = handler(request, *args, **kwargs) File "/usr/local/lib/python3.6/dist-packages/rest_framework/mixins.py" in create 20. serializer.is_valid(raise_exception=True) File "/usr/local/lib/python3.6/dist-packages/rest_framework/serializers.py" in is_valid 236. self._validated_data = self.run_validation(self.initial_data) File "/usr/local/lib/python3.6/dist-packages/rest_framework/serializers.py" in run_validation 434. value = self.to_internal_value(data) File "/usr/local/lib/python3.6/dist-packages/rest_framework/serializers.py" in to_internal_value 464. validated_value = field.run_validation(primitive_value) File "/usr/local/lib/python3.6/dist-packages/rest_framework/serializers.py" in run_validation 434. value = self.to_internal_value(data) File "/opt/netbox-2.4.2/netbox/utilities/api.py" in to_internal_value 173. return self.Meta.model.objects.get(pk=data) File "/usr/local/lib/python3.6/dist-packages/django/db/models/manager.py" in manager_method 82. return getattr(self.get_queryset(), name)(*args, **kwargs) File "/usr/local/lib/python3.6/dist-packages/django/db/models/query.py" in get 394. clone = self.filter(*args, **kwargs) File "/usr/local/lib/python3.6/dist-packages/django/db/models/query.py" in filter 839. return self._filter_or_exclude(False, *args, **kwargs) File "/usr/local/lib/python3.6/dist-packages/django/db/models/query.py" in _filter_or_exclude 857. clone.query.add_q(Q(*args, **kwargs)) File "/usr/local/lib/python3.6/dist-packages/django/db/models/sql/query.py" in add_q 1253. clause, _ = self._add_q(q_object, self.used_aliases) File "/usr/local/lib/python3.6/dist-packages/django/db/models/sql/query.py" in _add_q 1277. split_subq=split_subq, File "/usr/local/lib/python3.6/dist-packages/django/db/models/sql/query.py" in build_filter 1215. condition = self.build_lookup(lookups, col, value) File "/usr/local/lib/python3.6/dist-packages/django/db/models/sql/query.py" in build_lookup 1085. lookup = lookup_class(lhs, rhs) File "/usr/local/lib/python3.6/dist-packages/django/db/models/lookups.py" in __init__ 18. self.rhs = self.get_prep_lookup() File "/usr/local/lib/python3.6/dist-packages/django/db/models/lookups.py" in get_prep_lookup 68. return self.lhs.output_field.get_prep_value(self.rhs) File "/usr/local/lib/python3.6/dist-packages/django/db/models/fields/__init__.py" in get_prep_value 947. return int(value) Exception Type: TypeError at /api/ipam/vlans/ Exception Value: int() argument must be a string, a bytes-like object or a number, not 'dict'
adam closed this issue 2025-12-29 18:19:53 +01:00
Author
Owner

@jeremystretch commented on GitHub (Apr 26, 2019):

Thank you for your interest in NetBox. GitHub issues are intended for reporting reproducible bugs and requesting features, and must be submitted using one of the templates provided here. For general discussion, questions, or assistance with installation issues, please post to our mailing list instead.

@jeremystretch commented on GitHub (Apr 26, 2019): Thank you for your interest in NetBox. GitHub issues are intended for reporting reproducible bugs and requesting features, and must be submitted using one of the templates provided [here](https://github.com/digitalocean/netbox/issues/new/choose). For general discussion, questions, or assistance with installation issues, please post to our [mailing list](https://groups.google.com/forum/#!forum/netbox-discuss) instead.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#2552