"Create & Add Another" broken for new IP addresses #10745

Closed
opened 2025-12-29 21:35:27 +01:00 by adam · 3 comments
Owner

Originally created by @tomryder-inspirenet on GitHub (Feb 7, 2025).

Originally assigned to: @jeremystretch, @renatoalmeidaoliveira on GitHub.

Deployment Type

Self-hosted

NetBox Version

v4.2.3

Python Version

3.11

Steps to Reproduce

  1. Navigate to IPAM -> IP Addresses in the left menu
  2. Click the "Add" button in the left column
  3. Specify any new IP address and mask in the "Address" field, e.g. 192.168.0.2.1/24
  4. Select any status in the "Status" drop-down
  5. At the bottom of the page, click "Create & Add Another"

Expected Behavior

The IP address creation form should render for a new IP address, noting that the previous address was successfully created.

Observed Behavior

Internal Server Error: /ipam/ip-addresses/add/

TypeError at /ipam/ip-addresses/add/
'NoneType' object is not iterable

Request Method: POST
Request URL: https://REDACTED/ipam/ip-addresses/add/
Django Version: 5.1.5
Python Executable: /opt/netbox/venv/bin/python
Python Version: 3.11.2
Python Path: ['/opt/netbox/netbox', '/usr/lib/python311.zip', '/usr/lib/python3.11', '/usr/lib/python3.11/lib-dynload', '/opt/netbox/venv/lib/python3.11/site-packages']
Server time: Fri, 07 Feb 2025 15:19:59 +1300
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.humanize',
 'django.forms',
 'corsheaders',
 'django_filters',
 'django_htmx',
 'django_tables2',
 'django_prometheus',
 'strawberry_django',
 'mptt',
 'rest_framework',
 'social_django',
 'taggit',
 'timezone_field',
 'core',
 'account',
 'circuits',
 'dcim',
 'ipam',
 'extras',
 'tenancy',
 'users',
 'utilities',
 'virtualization',
 'vpn',
 'wireless',
 'django_rq',
 'drf_spectacular',
 'drf_spectacular_sidecar',
 'netbox_documents.NetboxDocuments',
 'netbox_qrcode.QRCodeConfig']
Installed Middleware:
['corsheaders.middleware.CorsMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 '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',
 'django_htmx.middleware.HtmxMiddleware',
 'netbox.middleware.RemoteUserMiddleware',
 'netbox.middleware.CoreMiddleware',
 'netbox.middleware.MaintenanceModeMiddleware']

Traceback (most recent call last):
  File "/opt/netbox/venv/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/venv/lib/python3.11/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.11/site-packages/django/views/generic/base.py", line 104, in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 182, in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/netbox/netbox/views/generic/base.py", line 26, in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/netbox/utilities/views.py", line 125, in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/netbox/utilities/views.py", line 39, in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/venv/lib/python3.11/site-packages/django/views/generic/base.py", line 143, in dispatch
    return handler(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 313, in post
    params.update(self.get_extra_addanother_params(request))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox/venv/lib/python3.11/site-packages/django/utils/datastructures.py", line 210, in update
    for key, value in arg:
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Exception Type: TypeError at /ipam/ip-addresses/add/
Exception Value: 'NoneType' object is not iterable
Raised during: ipam.views.IPAddressEditView
Request information:
USER: tom

GET: No GET data

POST:
csrfmiddlewaretoken = 'jnZ0946sXiUPntvXby1xMeZVO4Z18RSTkraBHZ1ribzaCgvSUeRDdNPw4rK3DL2E'
_init_time = '1738894763.097426'
address = '192.0.2.2/24'
status = 'active'
role = ''
vrf = ''
dns_name = ''
description = ''
tenant_group = ''
tenant = ''
interface = ''
vminterface = ''
fhrpgroup = ''
primary_for_parent = ''
oob_for_parent = ''
nat_inside = ''
cf_management_address = ''
cf_oob_management_address = ''
cf_monitoring_bgp = ''
cf_monitoring_bgp_uptime_minimum = ''
cf_monitoring_contact_email = ''
cf_monitoring_contact_phone = ''
cf_monitoring_ftp = ''
cf_monitoring_http = ''
cf_monitoring_http_hostname = ''
cf_monitoring_https = ''
cf_monitoring_https_hostname = ''
cf_monitoring_juniper_vpn = ''
cf_monitoring_juniper_vpn_uptime_minimum = ''
cf_monitoring_mikrotik_voltage = ''
cf_monitoring_mikrotik_voltage_critical = ''
cf_monitoring_mikrotik_voltage_warning = ''
cf_monitoring_mpls = ''
cf_monitoring_ping = ''
cf_monitoring_nagios_check_interval = ''
cf_monitoring_nagios_contactgroup = ''
cf_monitoring_nagios_event_handler = ''
cf_monitoring_nagios_hostgroup = ''
cf_monitoring_nagios_ncpa_token = ''
cf_monitoring_nagios_notification_period = ''
cf_monitoring_nagios_retry_interval = ''
cf_snmp_get_community = ''
cf_treasury_account_id = ''
cf_wireless_suid = ''
comments = ''
_addanother = ''

FILES: No FILES data

COOKIES:
csrftoken = '********************'
_ga_PW5VGEJ76X = 'GS1.1.1737495988.9.0.1737495990.58.0.0'
_ga = 'GA1.1.194355644.1724275695'
_ga_HTNJKCC9NH = 'GS1.1.1725404796.1.1.1725404796.60.0.0'
_fbp = 'fb.2.1725404796354.753919848969322510'
_gcl_au = '1.1.209266393.1736299199'
sessionid = '********************'

META:
CONTENT_LENGTH = '5977'
CONTENT_TYPE = 'multipart/form-data; boundary=---------------------------246652128233119244821296829133'
CONTEXT_DOCUMENT_ROOT = '/var/www/html'
CONTEXT_PREFIX = ''
CSRF_COOKIE = 'REDACTED'
DOCUMENT_ROOT = '/var/www/html'
GATEWAY_INTERFACE = 'CGI/1.1'
H2PUSH = 'off'
H2_PUSH = 'off'
H2_PUSHED = ''
H2_PUSHED_ON = ''
H2_STREAM_ID = '11'
H2_STREAM_TAG = '4139228-27338-11'
HTTP2 = 'on'
HTTP_ACCEPT = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
HTTP_ACCEPT_ENCODING = 'gzip, deflate, br, zstd'
HTTP_ACCEPT_LANGUAGE = 'en-US,en;q=0.5'
HTTP_COOKIE = '********************'
HTTP_DNT = '1'
HTTP_HOST = 'REDACTED'
HTTP_ORIGIN = 'REDACTED'
HTTP_PRIORITY = 'u=0, i'
HTTP_REFERER = 'https://REDACTED/ipam/ip-addresses/add/'
HTTP_SEC_FETCH_DEST = 'document'
HTTP_SEC_FETCH_MODE = 'navigate'
HTTP_SEC_FETCH_SITE = 'same-origin'
HTTP_SEC_FETCH_USER = '?1'
HTTP_TE = 'trailers'
HTTP_UPGRADE_INSECURE_REQUESTS = '1'
HTTP_USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0'
HTTP_X_SSL_CIPHER = 'TLS_AES_256_GCM_SHA384'
HTTP_X_SSL_PROTOCOL = 'TLSv1.3'
PATH_INFO = '/ipam/ip-addresses/add/'
PATH_TRANSLATED = '/opt/netbox/netbox/netbox/[wsgi.py/ipam/ip-addresses/add/](http://wsgi.py/ipam/ip-addresses/add/)'
QUERY_STRING = ''
REMOTE_ADDR = 'REDACTED'
REMOTE_PORT = '56980'
REQUEST_METHOD = 'POST'
REQUEST_SCHEME = 'https'
REQUEST_URI = '/ipam/ip-addresses/add/'
SCRIPT_FILENAME = '/opt/netbox/netbox/netbox/wsgi.py'
SCRIPT_NAME = ''
SERVER_ADDR = 'REDACTED'
SERVER_ADMIN = 'REDACTED'
SERVER_NAME = 'REDACTED'
SERVER_PORT = '443'
SERVER_PROTOCOL = 'HTTP/2.0'
SERVER_SIGNATURE = '********************'
SERVER_SOFTWARE = 'Apache/2.4.62 (Debian)'
SSL_TLS_SNI = 'REDACTED'
apache.version = '(2, 4, 55)'
mod_wsgi.application_group = 'REDACTED'
mod_wsgi.callable_object = 'application'
mod_wsgi.daemon_connects = '1'
mod_wsgi.daemon_restarts = '0'
mod_wsgi.daemon_start = '1738894799210037'
mod_wsgi.enable_sendfile = '0'
mod_wsgi.handler_script = ''
mod_wsgi.ignore_activity = '0'
mod_wsgi.listener_host = 'REDACTED'
mod_wsgi.listener_port = '443'
mod_wsgi.path_info = '/ipam/ip-addresses/add/'
mod_wsgi.process_group = 'REDACTED'
mod_wsgi.queue_start = '1738894799209823'
mod_wsgi.request_handler = 'wsgi-script'
mod_wsgi.request_id = 'ZwPP/jPBv5U'
mod_wsgi.request_start = '1738894799209319'
mod_wsgi.script_name = ''
mod_wsgi.script_reloading = '1'
mod_wsgi.script_start = '1738894799210262'
mod_wsgi.thread_id = 1
mod_wsgi.thread_requests = 123
mod_wsgi.total_requests = 123
mod_wsgi.version = '(4, 9, 4)'
wsgi.errors = <_io.TextIOWrapper name='<wsgi.errors>' encoding='utf-8'>
wsgi.file_wrapper = <class 'mod_wsgi.FileWrapper'>
wsgi.input = <mod_wsgi.Input object at 0x7fcf8ab1fa60>
wsgi.input_terminated = True
wsgi.multiprocess = True
wsgi.multithread = False
wsgi.run_once = False
wsgi.url_scheme = 'https'
wsgi.version = '(1, 0)'

Settings:
Using settings module netbox.settings
ABSOLUTE_URL_OVERRIDES = {}
ADMINS = [('NetBox Administrator', 'REDACTED')]
ALLOWED_HOSTS = ['REDACTED']
ALLOW_TOKEN_RETRIEVAL = '********************'
APPEND_SLASH = True
AUTHENTICATION_BACKENDS = ['netbox.authentication.RemoteUserBackend', 'netbox.authentication.ObjectPermissionBackend']
AUTH_PASSWORD_VALIDATORS = '********************'
AUTH_USER_MODEL = 'users.User'
BASE_DIR = '/opt/netbox/netbox'
BASE_PATH = ''
CACHES = {'default': {'BACKEND': 'django_redis.cache.RedisCache', 'OPTIONS': {'CLIENT_CLASS': 'django_redis.client.DefaultClient', 'PASSWORD': '********************'}, 'LOCATION': 'unix:///run/valkey-netbox/valkey-server.sock?db=1'}}
CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
CACHE_MIDDLEWARE_SECONDS = 600
CACHING_REDIS_CA_CERT_PATH = False
CACHING_REDIS_DATABASE = 1
CACHING_REDIS_HOST = 'localhost'
CACHING_REDIS_PASSWORD = '********************'
CACHING_REDIS_PORT = 6379
CACHING_REDIS_PROTO = 'redis'
CACHING_REDIS_SENTINELS = []
CACHING_REDIS_SENTINEL_SERVICE = 'default'
CACHING_REDIS_SKIP_TLS_VERIFY = False
CACHING_REDIS_SOCKET = '/run/valkey-netbox/valkey-server.sock'
CACHING_REDIS_URL = 'redis://localhost:6379/1'
CACHING_REDIS_USERNAME = ''
CACHING_REDIS_USERNAME_HOST = 'localhost'
CENSUS_REPORTING_ENABLED = True
CENSUS_URL = 'https://census.netbox.oss.netboxlabs.com/api/v1/'
CHANGELOG_SKIP_EMPTY_CHANGES = True
CONFIG_PARAMS = '(<netbox.config.parameters.ConfigParam object at 0x7fcfa6a31650>, <netbox.config.parameters.ConfigParam object at 0x7fcfa6a4a990>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c18490>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c18690>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c187d0>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c18950>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c18ad0>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c18c50>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c18dd0>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c18f50>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c190d0>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c19450>, <netbox.config.parameters..ConfigParam object at 0x7fcfa5c194d0>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c195d0>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c19850>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c19a90>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c19c10>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c19d90>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c19f10>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c1a090>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c1a210>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c1a390>)'
CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_REGEX_WHITELIST = []
CORS_ORIGIN_WHITELIST = []
CSRF_COOKIE_AGE = 31449600
CSRF_COOKIE_DOMAIN = None
CSRF_COOKIE_HTTPONLY = False
CSRF_COOKIE_NAME = 'csrftoken'
CSRF_COOKIE_PATH = '/'
CSRF_COOKIE_SAMESITE = 'Lax'
CSRF_COOKIE_SECURE = False
CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS = []
CSRF_USE_SESSIONS = False
DATABASE = {'NAME': 'netbox', 'USER': 'netbox', 'PASSWORD': '********************', 'HOST': 'REDACTED', 'ENGINE': 'django.db.backends.postgresql', 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'CONN_HEALTH_CHECKS': False, 'OPTIONS': {}, 'TIME_ZONE': None, 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}}
DATABASES = {'default': {'NAME': 'netbox', 'USER': 'netbox', 'PASSWORD': '********************', 'HOST': 'REDACTED', 'ENGINE': 'django.db.backends.postgresql', 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'CONN_HEALTH_CHECKS': False, 'OPTIONS': {}, 'TIME_ZONE': None, 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}}}
DATABASE_ROUTERS = []
DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS = None
DATA_UPLOAD_MAX_NUMBER_FILES = 100
DATETIME_FORMAT = 'N j, Y, P'
DATETIME_INPUT_FORMATS = ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M']
DATE_FORMAT = 'N j, Y'
DATE_INPUT_FORMATS = ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']
DEBUG = False
DEBUG_PROPAGATE_EXCEPTIONS = False
DECIMAL_SEPARATOR = '.'
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
DEFAULT_CHARSET = 'utf-8'
DEFAULT_DASHBOARD = None
DEFAULT_EXCEPTION_REPORTER = 'django.views.debug.ExceptionReporter'
DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FROM_EMAIL = 'webmaster@localhost'
DEFAULT_INDEX_TABLESPACE = ''
DEFAULT_PERMISSIONS = {'extras.view_bookmark': ({'user': '$user'},), 'extras.add_bookmark': ({'user': '$user'},), 'extras.change_bookmark': ({'user': '$user'},), 'extras.delete_bookmark': ({'user': '$user'},), 'extras.view_notification': ({'user': '$user'},), 'extras.add_notification': ({'user': '$user'},), 'extras.change_notification': ({'user': '$user'},), 'extras.delete_notification': ({'user': '$user'},), 'extras.view_subscription': ({'user': '$user'},), 'extras.add_subscription': ({'user': '$user'},), 'extras.change_subscription': ({'user': '$user'},), 'extras.delete_subscription': ({'user': '$user'},), 'users.view_token': '********************', 'users.add_token': '********************', 'users.change_token': '********************', 'users.delete_token': '********************'}
DEFAULT_TABLESPACE = ''
DEPLOYMENT_ID = '234bad756cfa9e3a'
DEVELOPER = False
DISALLOWED_USER_AGENTS = []
DOCS_ROOT = '/opt/netbox/docs'
EMAIL = {'SERVER': 'localhost', 'FROM_EMAIL': 'REDACTED'}
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_HOST_PASSWORD = '********************'
EMAIL_HOST_USER = None
EMAIL_PORT = 25
EMAIL_SSL_CERTFILE = None
EMAIL_SSL_KEYFILE = '********************'
EMAIL_SUBJECT_PREFIX = '[NetBox] '
EMAIL_TIMEOUT = 10
EMAIL_USE_LOCALTIME = False
EMAIL_USE_SSL = False
EMAIL_USE_TLS = False
EVENTS_PIPELINE = ['extras.events.process_event_queue']
EXEMPT_EXCLUDE_MODELS = "(('extras', 'configrevision'), ('users', 'group'), ('users', 'objectpermission'), ('users', 'token'), ('users', 'user'))"
EXEMPT_VIEW_PERMISSIONS = []
FIELD_CHOICES = {}
FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
FILE_UPLOAD_PERMISSIONS = 420
FILE_UPLOAD_TEMP_DIR = None
FILTERS_NULL_CHOICE_LABEL = 'None'
FILTERS_NULL_CHOICE_VALUE = 'null'
FIRST_DAY_OF_WEEK = 0
FIXTURE_DIRS = []
FORCE_SCRIPT_NAME = None
FORMAT_MODULE_PATH = None
FORMS_URLFIELD_ASSUME_HTTPS = False
FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'
GRAPHQL_MAX_ALIASES = 10
HOSTNAME = 'intweb02'
HTTP_PROXIES = None
IGNORABLE_404_URLS = []
INSTALLED_APPS = ['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'django.forms', 'corsheaders', 'django_filters', 'django_htmx', 'django_tables2', 'django_prometheus', 'strawberry_django', 'mptt', 'rest_framework', 'social_django', 'taggit', 'timezone_field', 'core', 'account', 'circuits', 'dcim', 'ipam', 'extras', 'tenancy', 'users', 'utilities', 'virtualization', 'vpn', 'wireless', 'django_rq', 'drf_spectacular', 'drf_spectacular_sidecar', 'netbox_documents.NetboxDocuments', 'netbox_qrcode.QRCodeConfig']
INTERNAL_IPS = "('127.0.0.1', '::1')"
ISOLATED_DEPLOYMENT = False
JINJA2_FILTERS = {}
LANGUAGES = "(('cs', 'Czech'), ('da', 'Danish'), ('de', 'German'), ('en', 'English'), ('es', 'Spanish'), ('fr', 'French'), ('it', 'Italian'), ('ja', 'Japanese'), ('nl', 'Dutch'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('ru', 'Russian'), ('tr', 'Turkish'), ('uk', 'Ukrainian'), ('zh', 'Chinese'))"
LANGUAGES_BIDI = ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur']
LANGUAGE_CODE = 'en-gb'
LANGUAGE_COOKIE_AGE = None
LANGUAGE_COOKIE_DOMAIN = None
LANGUAGE_COOKIE_HTTPONLY = False
LANGUAGE_COOKIE_NAME = 'django_language'
LANGUAGE_COOKIE_PATH = '/'
LANGUAGE_COOKIE_SAMESITE = None
LANGUAGE_COOKIE_SECURE = False
LOCALE_PATHS = "('/opt/netbox/netbox/translations',)"
LOGGING = {}
LOGGING_CONFIG = 'logging.config.dictConfig'
LOGIN_PERSISTENCE = True
LOGIN_REDIRECT_URL = '/'
LOGIN_REQUIRED = True
LOGIN_TIMEOUT = None
LOGIN_URL = '/login/'
LOGOUT_REDIRECT_URL = 'home'
MAINTENANCE_EXEMPT_PATHS = "('/extras/config-revisions/', '/login/', '/', 'home')"
MANAGERS = []
MEDIA_ROOT = '/opt/netbox/netbox/media'
MEDIA_URL = '/media/'
MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
MESSAGE_TAGS = {40: 'danger'}
METRICS_ENABLED = False
MIDDLEWARE = ['corsheaders.middleware.CorsMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', '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', 'django_htmx.middleware.HtmxMiddleware', 'netbox.middleware.RemoteUserMiddleware', 'netbox.middleware.CoreMiddleware', 'netbox.middleware.MaintenanceModeMiddleware']
MIGRATION_MODULES = {}
MONTH_DAY_FORMAT = 'F j'
NUMBER_GROUPING = 0
PASSWORD_HASHERS = '********************'
PASSWORD_RESET_TIMEOUT = '********************'
PLUGINS = ['netbox_documents', 'netbox_qrcode']
PLUGINS_CONFIG = {'netbox_documents': {'enable_site_documents': True, 'enable_location_documents': True, 'enable_circuit_documents': True, 'enable_device_documents': True, 'enable_device_type_documents': True, 'enable_vm_documents': True, 'enable_circuit_provider_documents': True, 'enable_navigation_menu': True, 'site_documents_location': 'left', 'location_documents_location': 'left', 'circuit_documents_location': 'left', 'device_documents_location': 'left', 'device_type_documents_location': 'left', 'vm_documents_location': 'left', 'circuit_provider_documents_location': 'left'}, 'netbox_qrcode': {'with_text': True, 'text_fields': ['name', 'serial'], 'font': 'TahomaBold', 'custom_text': None, 'text_location': 'right', 'qr_version': 1, 'qr_error_correction': 0, 'qr_box_size': 6, 'qr_border': 4, 'device': {'text_fields': ['name', 'serial']}, 'rack': {'text_fields': ['name']}, 'cable': {'text_fields': ['_termination_a_device', 'termination_a', '_termination_b_device', 'termination_b', 'a_terminations.device', 'a_terminations', 'b_terminations.device', 'b_terminations']}, 'location': {'text_fields': ['name']}, 'powerfeed': {'text_fields': ['name']}, 'powerpanel': {'text_fields': ['name']}}}
PLUGIN_CATALOG_URL = 'https://api.netbox.oss.netboxlabs.com/v1/plugins'
PREPEND_WWW = False
PROMETHEUS_EXPORT_MIGRATIONS = False
QUEUE_MAPPINGS = {}
REDIS = {'tasks': {'SOCKET': '/run/valkey-netbox/valkey-server.sock', 'DATABASE': 0}, 'caching': {'SOCKET': '/run/valkey-netbox/valkey-server.sock', 'DATABASE': 1}}
RELEASE = ReleaseInfo(version='4.2.3', edition='Community', published=datetime.datetime(2025, 2, 4, 0, 0), designation=None, build=None, features=FeatureSet(commercial=False, help_center=False))
RELEASE_CHECK_URL = 'https://api.github.com/repos/netbox-community/netbox/releases'
REMOTE_AUTH_AUTO_CREATE_GROUPS = False
REMOTE_AUTH_AUTO_CREATE_USER = False
REMOTE_AUTH_BACKEND = ['netbox.authentication.RemoteUserBackend']
REMOTE_AUTH_DEFAULT_GROUPS = []
REMOTE_AUTH_DEFAULT_PERMISSIONS = {}
REMOTE_AUTH_ENABLED = False
REMOTE_AUTH_GROUP_HEADER = 'HTTP_REMOTE_USER_GROUP'
REMOTE_AUTH_GROUP_SEPARATOR = '|'
REMOTE_AUTH_GROUP_SYNC_ENABLED = False
REMOTE_AUTH_HEADER = 'HTTP_REMOTE_USER'
REMOTE_AUTH_STAFF_GROUPS = []
REMOTE_AUTH_STAFF_USERS = []
REMOTE_AUTH_SUPERUSERS = []
REMOTE_AUTH_SUPERUSER_GROUPS = []
REMOTE_AUTH_USER_EMAIL = 'HTTP_REMOTE_USER_EMAIL'
REMOTE_AUTH_USER_FIRST_NAME = 'HTTP_REMOTE_USER_FIRST_NAME'
REMOTE_AUTH_USER_LAST_NAME = 'HTTP_REMOTE_USER_LAST_NAME'
REPORTS_ROOT = '/opt/netbox/netbox/reports'
REST_FRAMEWORK = {'ALLOWED_VERSIONS': ['4.2'], 'COERCE_DECIMAL_TO_STRING': False, 'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.SessionAuthentication', 'netbox.api.authentication.TokenAuthentication'), 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend', 'rest_framework.filters.OrderingFilter'), 'DEFAULT_METADATA_CLASS': 'netbox.api.metadata.BulkOperationMetadata', 'DEFAULT_PAGINATION_CLASS': 'netbox.api.pagination.OptionalLimitOffsetPagination', 'DEFAULT_PARSER_CLASSES': ('rest_framework.parsers.JSONParser', 'rest_framework.parsers.MultiPartParser'), 'DEFAULT_PERMISSION_CLASSES': ('netbox.api.authentication.TokenPermissions',), 'DEFAULT_RENDERER_CLASSES': ('rest_framework.renderers.JSONRenderer', 'netbox.api.renderers.FormlessBrowsableAPIRenderer'), 'DEFAULT_SCHEMA_CLASS': 'core.api.schema.NetBoxAutoSchema', 'DEFAULT_VERSION': '4.2', 'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.AcceptHeaderVersioning', 'SCHEMA_COERCE_METHOD_NAMES': {'retrieve': 'read', 'destroy': 'delete', 'bulk_destroy': 'bulk_delete'}, 'VIEW_NAME_FUNCTION': 'utilities.api.get_view_name'}
REST_FRAMEWORK_VERSION = '4.2'
ROOT_URLCONF = 'netbox.urls'
RQ_DEFAULT_TIMEOUT = 300
RQ_PARAMS = {'UNIX_SOCKET_PATH': '/run/valkey-netbox/valkey-server.sock', 'DB': 0, 'USERNAME': '', 'PASSWORD': '********************', 'DEFAULT_TIMEOUT': 300}
RQ_QUEUES = {'high': {'UNIX_SOCKET_PATH': '/run/valkey-netbox/valkey-server.sock', 'DB': 0, 'USERNAME': '', 'PASSWORD': '********************', 'DEFAULT_TIMEOUT': 300}, 'default': {'UNIX_SOCKET_PATH': '/run/valkey-netbox/valkey-server.sock', 'DB': 0, 'USERNAME': '', 'PASSWORD': '********************', 'DEFAULT_TIMEOUT': 300}, 'low': {'UNIX_SOCKET_PATH': '/run/valkey-netbox/valkey-server.sock', 'DB': 0, 'USERNAME': '', 'PASSWORD': '********************', 'DEFAULT_TIMEOUT': 300}}
RQ_QUEUE_DEFAULT = 'default'
RQ_QUEUE_HIGH = 'high'
RQ_QUEUE_LOW = 'low'
RQ_RETRY_INTERVAL = 60
RQ_RETRY_MAX = 0
SCRIPTS_ROOT = '/opt/netbox/netbox/scripts'
SEARCH_BACKEND = 'netbox.search.backends.CachedValueSearchBackend'
SECRET_KEY = '********************'
SECRET_KEY_FALLBACKS = '********************'
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_CROSS_ORIGIN_OPENER_POLICY = 'same-origin'
SECURE_HSTS_INCLUDE_SUBDOMAINS = False
SECURE_HSTS_PRELOAD = False
SECURE_HSTS_SECONDS = 0
SECURE_PROXY_SSL_HEADER = "('HTTP_X_FORWARDED_PROTO', 'https')"
SECURE_REDIRECT_EXEMPT = []
SECURE_REFERRER_POLICY = 'same-origin'
SECURE_SSL_HOST = None
SECURE_SSL_REDIRECT = True
SENTRY_DSN = None
SENTRY_ENABLED = False
SENTRY_SAMPLE_RATE = 1.0
SENTRY_SEND_DEFAULT_PII = False
SENTRY_TAGS = {}
SENTRY_TRACES_SAMPLE_RATE = 0
SERIALIZATION_MODULES = {'json': 'utilities.serializers.json'}
SERVER_EMAIL = 'REDACTED'
SESSION_CACHE_ALIAS = 'default'
SESSION_COOKIE_AGE = 1209600
SESSION_COOKIE_DOMAIN = None
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_NAME = 'sessionid'
SESSION_COOKIE_PATH = '/'
SESSION_COOKIE_SAMESITE = 'Lax'
SESSION_COOKIE_SECURE = True
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_FILE_PATH = None
SESSION_SAVE_EVERY_REQUEST = True
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE = 'netbox.settings'
SHORT_DATETIME_FORMAT = 'm/d/Y P'
SHORT_DATE_FORMAT = 'm/d/Y'
SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS = []
SOCIAL_AUTH_CLEAN_USERNAME_FUNCTION = 'users.utils.clean_username'
SOCIAL_AUTH_JSONFIELD_ENABLED = True
SOCIAL_AUTH_PIPELINE = "('social_core.pipeline.social_auth.social_details', 'social_core.pipeline.social_auth.social_uid', 'social_core.pipeline.social_auth.social_user', 'social_core.pipeline.user.get_username', 'social_core.pipeline.user.create_user', 'social_core.pipeline.social_auth.associate_user', 'netbox.authentication.user_default_groups_handler', 'social_core.pipeline.social_auth.load_extra_data', 'social_core.pipeline.user.user_details')"
SOCIAL_AUTH_USER_MODEL = 'users.User'
SPECTACULAR_SETTINGS = {'TITLE': 'NetBox REST API', 'LICENSE': {'name': 'Apache v2 License'}, 'VERSION': '4.2.3', 'COMPONENT_SPLIT_REQUEST': True, 'REDOC_DIST': 'SIDECAR', 'SERVERS': [{'url': '', 'description': 'NetBox'}], 'SWAGGER_UI_DIST': 'SIDECAR', 'SWAGGER_UI_FAVICON_HREF': 'SIDECAR', 'POSTPROCESSING_HOOKS': []}
STATICFILES_DIRS = "('/opt/netbox/netbox/project-static/dist', '/opt/netbox/netbox/project-static/img', '/opt/netbox/netbox/project-static/js', ('docs', '/opt/netbox/netbox/project-static/docs'))"
STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATIC_ROOT = '/opt/netbox/netbox/static'
STATIC_URL = '/static/'
STORAGES = {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'}, 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}}
STORAGE_BACKEND = None
STORAGE_CONFIG = {}
STRAWBERRY_DJANGO = {'DEFAULT_PK_FIELD_NAME': 'id', 'TYPE_DESCRIPTION_FROM_MODEL_DOCSTRING': True, 'USE_DEPRECATED_FILTERS': True}
TASKS_REDIS = {'SOCKET': '/run/valkey-netbox/valkey-server.sock', 'DATABASE': 0}
TASKS_REDIS_CA_CERT_PATH = False
TASKS_REDIS_DATABASE = 0
TASKS_REDIS_HOST = 'localhost'
TASKS_REDIS_PASSWORD = '********************'
TASKS_REDIS_PORT = 6379
TASKS_REDIS_SENTINELS = []
TASKS_REDIS_SENTINEL_SERVICE = 'default'
TASKS_REDIS_SENTINEL_TIMEOUT = 10
TASKS_REDIS_SKIP_TLS_VERIFY = False
TASKS_REDIS_SOCKET = '/run/valkey-netbox/valkey-server.sock'
TASKS_REDIS_SSL = False
TASKS_REDIS_URL = None
TASKS_REDIS_USERNAME = ''
TASKS_REDIS_USING_SENTINEL = False
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/opt/netbox/netbox/templates'], 'APP_DIRS': True, 'OPTIONS': {'builtins': ['utilities.templatetags.builtins.filters', 'utilities.templatetags.builtins.tags'], 'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.template.context_processors.media', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'netbox.context_processors.settings', 'netbox.context_processors.config', 'netbox.context_processors.registry', 'netbox.context_processors.preferences']}}]
TEMPLATES_DIR = '/opt/netbox/netbox/templates'
TEST_NON_SERIALIZED_APPS = []
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR = ','
TIME_FORMAT = 'P'
TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE = 'Pacific/Auckland'
TRANSLATION_ENABLED = True
USE_I18N = True
USE_THOUSAND_SEPARATOR = False
USE_TZ = True
USE_X_FORWARDED_HOST = True
USE_X_FORWARDED_PORT = False
VERSION = '4.2.3'
WSGI_APPLICATION = 'netbox.wsgi.application'
X_FRAME_OPTIONS = 'SAMEORIGIN'
YEAR_MONTH_FORMAT = 'F Y'
Originally created by @tomryder-inspirenet on GitHub (Feb 7, 2025). Originally assigned to: @jeremystretch, @renatoalmeidaoliveira on GitHub. ### Deployment Type Self-hosted ### NetBox Version v4.2.3 ### Python Version 3.11 ### Steps to Reproduce 1. Navigate to IPAM -> IP Addresses in the left menu 2. Click the "Add" button in the left column 3. Specify any new IP address and mask in the "Address" field, e.g. 192.168.0.2.1/24 4. Select any status in the "Status" drop-down 5. At the bottom of the page, click "Create & Add Another" ### Expected Behavior The IP address creation form should render for a new IP address, noting that the previous address was successfully created. ### Observed Behavior ``` Internal Server Error: /ipam/ip-addresses/add/ TypeError at /ipam/ip-addresses/add/ 'NoneType' object is not iterable Request Method: POST Request URL: https://REDACTED/ipam/ip-addresses/add/ Django Version: 5.1.5 Python Executable: /opt/netbox/venv/bin/python Python Version: 3.11.2 Python Path: ['/opt/netbox/netbox', '/usr/lib/python311.zip', '/usr/lib/python3.11', '/usr/lib/python3.11/lib-dynload', '/opt/netbox/venv/lib/python3.11/site-packages'] Server time: Fri, 07 Feb 2025 15:19:59 +1300 Installed Applications: ['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'django.forms', 'corsheaders', 'django_filters', 'django_htmx', 'django_tables2', 'django_prometheus', 'strawberry_django', 'mptt', 'rest_framework', 'social_django', 'taggit', 'timezone_field', 'core', 'account', 'circuits', 'dcim', 'ipam', 'extras', 'tenancy', 'users', 'utilities', 'virtualization', 'vpn', 'wireless', 'django_rq', 'drf_spectacular', 'drf_spectacular_sidecar', 'netbox_documents.NetboxDocuments', 'netbox_qrcode.QRCodeConfig'] Installed Middleware: ['corsheaders.middleware.CorsMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', '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', 'django_htmx.middleware.HtmxMiddleware', 'netbox.middleware.RemoteUserMiddleware', 'netbox.middleware.CoreMiddleware', 'netbox.middleware.MaintenanceModeMiddleware'] Traceback (most recent call last): File "/opt/netbox/venv/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib/python3.11/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.11/site-packages/django/views/generic/base.py", line 104, in view return self.dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 182, in dispatch return super().dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/netbox/views/generic/base.py", line 26, in dispatch return super().dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/utilities/views.py", line 125, in dispatch return super().dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/utilities/views.py", line 39, in dispatch return super().dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib/python3.11/site-packages/django/views/generic/base.py", line 143, in dispatch return handler(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 313, in post params.update(self.get_extra_addanother_params(request)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox/venv/lib/python3.11/site-packages/django/utils/datastructures.py", line 210, in update for key, value in arg: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Exception Type: TypeError at /ipam/ip-addresses/add/ Exception Value: 'NoneType' object is not iterable Raised during: ipam.views.IPAddressEditView Request information: USER: tom GET: No GET data POST: csrfmiddlewaretoken = 'jnZ0946sXiUPntvXby1xMeZVO4Z18RSTkraBHZ1ribzaCgvSUeRDdNPw4rK3DL2E' _init_time = '1738894763.097426' address = '192.0.2.2/24' status = 'active' role = '' vrf = '' dns_name = '' description = '' tenant_group = '' tenant = '' interface = '' vminterface = '' fhrpgroup = '' primary_for_parent = '' oob_for_parent = '' nat_inside = '' cf_management_address = '' cf_oob_management_address = '' cf_monitoring_bgp = '' cf_monitoring_bgp_uptime_minimum = '' cf_monitoring_contact_email = '' cf_monitoring_contact_phone = '' cf_monitoring_ftp = '' cf_monitoring_http = '' cf_monitoring_http_hostname = '' cf_monitoring_https = '' cf_monitoring_https_hostname = '' cf_monitoring_juniper_vpn = '' cf_monitoring_juniper_vpn_uptime_minimum = '' cf_monitoring_mikrotik_voltage = '' cf_monitoring_mikrotik_voltage_critical = '' cf_monitoring_mikrotik_voltage_warning = '' cf_monitoring_mpls = '' cf_monitoring_ping = '' cf_monitoring_nagios_check_interval = '' cf_monitoring_nagios_contactgroup = '' cf_monitoring_nagios_event_handler = '' cf_monitoring_nagios_hostgroup = '' cf_monitoring_nagios_ncpa_token = '' cf_monitoring_nagios_notification_period = '' cf_monitoring_nagios_retry_interval = '' cf_snmp_get_community = '' cf_treasury_account_id = '' cf_wireless_suid = '' comments = '' _addanother = '' FILES: No FILES data COOKIES: csrftoken = '********************' _ga_PW5VGEJ76X = 'GS1.1.1737495988.9.0.1737495990.58.0.0' _ga = 'GA1.1.194355644.1724275695' _ga_HTNJKCC9NH = 'GS1.1.1725404796.1.1.1725404796.60.0.0' _fbp = 'fb.2.1725404796354.753919848969322510' _gcl_au = '1.1.209266393.1736299199' sessionid = '********************' META: CONTENT_LENGTH = '5977' CONTENT_TYPE = 'multipart/form-data; boundary=---------------------------246652128233119244821296829133' CONTEXT_DOCUMENT_ROOT = '/var/www/html' CONTEXT_PREFIX = '' CSRF_COOKIE = 'REDACTED' DOCUMENT_ROOT = '/var/www/html' GATEWAY_INTERFACE = 'CGI/1.1' H2PUSH = 'off' H2_PUSH = 'off' H2_PUSHED = '' H2_PUSHED_ON = '' H2_STREAM_ID = '11' H2_STREAM_TAG = '4139228-27338-11' HTTP2 = 'on' HTTP_ACCEPT = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' HTTP_ACCEPT_ENCODING = 'gzip, deflate, br, zstd' HTTP_ACCEPT_LANGUAGE = 'en-US,en;q=0.5' HTTP_COOKIE = '********************' HTTP_DNT = '1' HTTP_HOST = 'REDACTED' HTTP_ORIGIN = 'REDACTED' HTTP_PRIORITY = 'u=0, i' HTTP_REFERER = 'https://REDACTED/ipam/ip-addresses/add/' HTTP_SEC_FETCH_DEST = 'document' HTTP_SEC_FETCH_MODE = 'navigate' HTTP_SEC_FETCH_SITE = 'same-origin' HTTP_SEC_FETCH_USER = '?1' HTTP_TE = 'trailers' HTTP_UPGRADE_INSECURE_REQUESTS = '1' HTTP_USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0' HTTP_X_SSL_CIPHER = 'TLS_AES_256_GCM_SHA384' HTTP_X_SSL_PROTOCOL = 'TLSv1.3' PATH_INFO = '/ipam/ip-addresses/add/' PATH_TRANSLATED = '/opt/netbox/netbox/netbox/[wsgi.py/ipam/ip-addresses/add/](http://wsgi.py/ipam/ip-addresses/add/)' QUERY_STRING = '' REMOTE_ADDR = 'REDACTED' REMOTE_PORT = '56980' REQUEST_METHOD = 'POST' REQUEST_SCHEME = 'https' REQUEST_URI = '/ipam/ip-addresses/add/' SCRIPT_FILENAME = '/opt/netbox/netbox/netbox/wsgi.py' SCRIPT_NAME = '' SERVER_ADDR = 'REDACTED' SERVER_ADMIN = 'REDACTED' SERVER_NAME = 'REDACTED' SERVER_PORT = '443' SERVER_PROTOCOL = 'HTTP/2.0' SERVER_SIGNATURE = '********************' SERVER_SOFTWARE = 'Apache/2.4.62 (Debian)' SSL_TLS_SNI = 'REDACTED' apache.version = '(2, 4, 55)' mod_wsgi.application_group = 'REDACTED' mod_wsgi.callable_object = 'application' mod_wsgi.daemon_connects = '1' mod_wsgi.daemon_restarts = '0' mod_wsgi.daemon_start = '1738894799210037' mod_wsgi.enable_sendfile = '0' mod_wsgi.handler_script = '' mod_wsgi.ignore_activity = '0' mod_wsgi.listener_host = 'REDACTED' mod_wsgi.listener_port = '443' mod_wsgi.path_info = '/ipam/ip-addresses/add/' mod_wsgi.process_group = 'REDACTED' mod_wsgi.queue_start = '1738894799209823' mod_wsgi.request_handler = 'wsgi-script' mod_wsgi.request_id = 'ZwPP/jPBv5U' mod_wsgi.request_start = '1738894799209319' mod_wsgi.script_name = '' mod_wsgi.script_reloading = '1' mod_wsgi.script_start = '1738894799210262' mod_wsgi.thread_id = 1 mod_wsgi.thread_requests = 123 mod_wsgi.total_requests = 123 mod_wsgi.version = '(4, 9, 4)' wsgi.errors = <_io.TextIOWrapper name='<wsgi.errors>' encoding='utf-8'> wsgi.file_wrapper = <class 'mod_wsgi.FileWrapper'> wsgi.input = <mod_wsgi.Input object at 0x7fcf8ab1fa60> wsgi.input_terminated = True wsgi.multiprocess = True wsgi.multithread = False wsgi.run_once = False wsgi.url_scheme = 'https' wsgi.version = '(1, 0)' Settings: Using settings module netbox.settings ABSOLUTE_URL_OVERRIDES = {} ADMINS = [('NetBox Administrator', 'REDACTED')] ALLOWED_HOSTS = ['REDACTED'] ALLOW_TOKEN_RETRIEVAL = '********************' APPEND_SLASH = True AUTHENTICATION_BACKENDS = ['netbox.authentication.RemoteUserBackend', 'netbox.authentication.ObjectPermissionBackend'] AUTH_PASSWORD_VALIDATORS = '********************' AUTH_USER_MODEL = 'users.User' BASE_DIR = '/opt/netbox/netbox' BASE_PATH = '' CACHES = {'default': {'BACKEND': 'django_redis.cache.RedisCache', 'OPTIONS': {'CLIENT_CLASS': 'django_redis.client.DefaultClient', 'PASSWORD': '********************'}, 'LOCATION': 'unix:///run/valkey-netbox/valkey-server.sock?db=1'}} CACHE_MIDDLEWARE_ALIAS = 'default' CACHE_MIDDLEWARE_KEY_PREFIX = '********************' CACHE_MIDDLEWARE_SECONDS = 600 CACHING_REDIS_CA_CERT_PATH = False CACHING_REDIS_DATABASE = 1 CACHING_REDIS_HOST = 'localhost' CACHING_REDIS_PASSWORD = '********************' CACHING_REDIS_PORT = 6379 CACHING_REDIS_PROTO = 'redis' CACHING_REDIS_SENTINELS = [] CACHING_REDIS_SENTINEL_SERVICE = 'default' CACHING_REDIS_SKIP_TLS_VERIFY = False CACHING_REDIS_SOCKET = '/run/valkey-netbox/valkey-server.sock' CACHING_REDIS_URL = 'redis://localhost:6379/1' CACHING_REDIS_USERNAME = '' CACHING_REDIS_USERNAME_HOST = 'localhost' CENSUS_REPORTING_ENABLED = True CENSUS_URL = 'https://census.netbox.oss.netboxlabs.com/api/v1/' CHANGELOG_SKIP_EMPTY_CHANGES = True CONFIG_PARAMS = '(<netbox.config.parameters.ConfigParam object at 0x7fcfa6a31650>, <netbox.config.parameters.ConfigParam object at 0x7fcfa6a4a990>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c18490>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c18690>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c187d0>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c18950>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c18ad0>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c18c50>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c18dd0>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c18f50>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c190d0>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c19450>, <netbox.config.parameters..ConfigParam object at 0x7fcfa5c194d0>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c195d0>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c19850>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c19a90>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c19c10>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c19d90>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c19f10>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c1a090>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c1a210>, <netbox.config.parameters.ConfigParam object at 0x7fcfa5c1a390>)' CORS_ORIGIN_ALLOW_ALL = False CORS_ORIGIN_REGEX_WHITELIST = [] CORS_ORIGIN_WHITELIST = [] CSRF_COOKIE_AGE = 31449600 CSRF_COOKIE_DOMAIN = None CSRF_COOKIE_HTTPONLY = False CSRF_COOKIE_NAME = 'csrftoken' CSRF_COOKIE_PATH = '/' CSRF_COOKIE_SAMESITE = 'Lax' CSRF_COOKIE_SECURE = False CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure' CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS = [] CSRF_USE_SESSIONS = False DATABASE = {'NAME': 'netbox', 'USER': 'netbox', 'PASSWORD': '********************', 'HOST': 'REDACTED', 'ENGINE': 'django.db.backends.postgresql', 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'CONN_HEALTH_CHECKS': False, 'OPTIONS': {}, 'TIME_ZONE': None, 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}} DATABASES = {'default': {'NAME': 'netbox', 'USER': 'netbox', 'PASSWORD': '********************', 'HOST': 'REDACTED', 'ENGINE': 'django.db.backends.postgresql', 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'CONN_HEALTH_CHECKS': False, 'OPTIONS': {}, 'TIME_ZONE': None, 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}}} DATABASE_ROUTERS = [] DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS = None DATA_UPLOAD_MAX_NUMBER_FILES = 100 DATETIME_FORMAT = 'N j, Y, P' DATETIME_INPUT_FORMATS = ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M'] DATE_FORMAT = 'N j, Y' DATE_INPUT_FORMATS = ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y'] DEBUG = False DEBUG_PROPAGATE_EXCEPTIONS = False DECIMAL_SEPARATOR = '.' DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' DEFAULT_CHARSET = 'utf-8' DEFAULT_DASHBOARD = None DEFAULT_EXCEPTION_REPORTER = 'django.views.debug.ExceptionReporter' DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FROM_EMAIL = 'webmaster@localhost' DEFAULT_INDEX_TABLESPACE = '' DEFAULT_PERMISSIONS = {'extras.view_bookmark': ({'user': '$user'},), 'extras.add_bookmark': ({'user': '$user'},), 'extras.change_bookmark': ({'user': '$user'},), 'extras.delete_bookmark': ({'user': '$user'},), 'extras.view_notification': ({'user': '$user'},), 'extras.add_notification': ({'user': '$user'},), 'extras.change_notification': ({'user': '$user'},), 'extras.delete_notification': ({'user': '$user'},), 'extras.view_subscription': ({'user': '$user'},), 'extras.add_subscription': ({'user': '$user'},), 'extras.change_subscription': ({'user': '$user'},), 'extras.delete_subscription': ({'user': '$user'},), 'users.view_token': '********************', 'users.add_token': '********************', 'users.change_token': '********************', 'users.delete_token': '********************'} DEFAULT_TABLESPACE = '' DEPLOYMENT_ID = '234bad756cfa9e3a' DEVELOPER = False DISALLOWED_USER_AGENTS = [] DOCS_ROOT = '/opt/netbox/docs' EMAIL = {'SERVER': 'localhost', 'FROM_EMAIL': 'REDACTED'} EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'localhost' EMAIL_HOST_PASSWORD = '********************' EMAIL_HOST_USER = None EMAIL_PORT = 25 EMAIL_SSL_CERTFILE = None EMAIL_SSL_KEYFILE = '********************' EMAIL_SUBJECT_PREFIX = '[NetBox] ' EMAIL_TIMEOUT = 10 EMAIL_USE_LOCALTIME = False EMAIL_USE_SSL = False EMAIL_USE_TLS = False EVENTS_PIPELINE = ['extras.events.process_event_queue'] EXEMPT_EXCLUDE_MODELS = "(('extras', 'configrevision'), ('users', 'group'), ('users', 'objectpermission'), ('users', 'token'), ('users', 'user'))" EXEMPT_VIEW_PERMISSIONS = [] FIELD_CHOICES = {} FILE_UPLOAD_DIRECTORY_PERMISSIONS = None FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440 FILE_UPLOAD_PERMISSIONS = 420 FILE_UPLOAD_TEMP_DIR = None FILTERS_NULL_CHOICE_LABEL = 'None' FILTERS_NULL_CHOICE_VALUE = 'null' FIRST_DAY_OF_WEEK = 0 FIXTURE_DIRS = [] FORCE_SCRIPT_NAME = None FORMAT_MODULE_PATH = None FORMS_URLFIELD_ASSUME_HTTPS = False FORM_RENDERER = 'django.forms.renderers.TemplatesSetting' GRAPHQL_MAX_ALIASES = 10 HOSTNAME = 'intweb02' HTTP_PROXIES = None IGNORABLE_404_URLS = [] INSTALLED_APPS = ['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'django.forms', 'corsheaders', 'django_filters', 'django_htmx', 'django_tables2', 'django_prometheus', 'strawberry_django', 'mptt', 'rest_framework', 'social_django', 'taggit', 'timezone_field', 'core', 'account', 'circuits', 'dcim', 'ipam', 'extras', 'tenancy', 'users', 'utilities', 'virtualization', 'vpn', 'wireless', 'django_rq', 'drf_spectacular', 'drf_spectacular_sidecar', 'netbox_documents.NetboxDocuments', 'netbox_qrcode.QRCodeConfig'] INTERNAL_IPS = "('127.0.0.1', '::1')" ISOLATED_DEPLOYMENT = False JINJA2_FILTERS = {} LANGUAGES = "(('cs', 'Czech'), ('da', 'Danish'), ('de', 'German'), ('en', 'English'), ('es', 'Spanish'), ('fr', 'French'), ('it', 'Italian'), ('ja', 'Japanese'), ('nl', 'Dutch'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('ru', 'Russian'), ('tr', 'Turkish'), ('uk', 'Ukrainian'), ('zh', 'Chinese'))" LANGUAGES_BIDI = ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur'] LANGUAGE_CODE = 'en-gb' LANGUAGE_COOKIE_AGE = None LANGUAGE_COOKIE_DOMAIN = None LANGUAGE_COOKIE_HTTPONLY = False LANGUAGE_COOKIE_NAME = 'django_language' LANGUAGE_COOKIE_PATH = '/' LANGUAGE_COOKIE_SAMESITE = None LANGUAGE_COOKIE_SECURE = False LOCALE_PATHS = "('/opt/netbox/netbox/translations',)" LOGGING = {} LOGGING_CONFIG = 'logging.config.dictConfig' LOGIN_PERSISTENCE = True LOGIN_REDIRECT_URL = '/' LOGIN_REQUIRED = True LOGIN_TIMEOUT = None LOGIN_URL = '/login/' LOGOUT_REDIRECT_URL = 'home' MAINTENANCE_EXEMPT_PATHS = "('/extras/config-revisions/', '/login/', '/', 'home')" MANAGERS = [] MEDIA_ROOT = '/opt/netbox/netbox/media' MEDIA_URL = '/media/' MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage' MESSAGE_TAGS = {40: 'danger'} METRICS_ENABLED = False MIDDLEWARE = ['corsheaders.middleware.CorsMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', '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', 'django_htmx.middleware.HtmxMiddleware', 'netbox.middleware.RemoteUserMiddleware', 'netbox.middleware.CoreMiddleware', 'netbox.middleware.MaintenanceModeMiddleware'] MIGRATION_MODULES = {} MONTH_DAY_FORMAT = 'F j' NUMBER_GROUPING = 0 PASSWORD_HASHERS = '********************' PASSWORD_RESET_TIMEOUT = '********************' PLUGINS = ['netbox_documents', 'netbox_qrcode'] PLUGINS_CONFIG = {'netbox_documents': {'enable_site_documents': True, 'enable_location_documents': True, 'enable_circuit_documents': True, 'enable_device_documents': True, 'enable_device_type_documents': True, 'enable_vm_documents': True, 'enable_circuit_provider_documents': True, 'enable_navigation_menu': True, 'site_documents_location': 'left', 'location_documents_location': 'left', 'circuit_documents_location': 'left', 'device_documents_location': 'left', 'device_type_documents_location': 'left', 'vm_documents_location': 'left', 'circuit_provider_documents_location': 'left'}, 'netbox_qrcode': {'with_text': True, 'text_fields': ['name', 'serial'], 'font': 'TahomaBold', 'custom_text': None, 'text_location': 'right', 'qr_version': 1, 'qr_error_correction': 0, 'qr_box_size': 6, 'qr_border': 4, 'device': {'text_fields': ['name', 'serial']}, 'rack': {'text_fields': ['name']}, 'cable': {'text_fields': ['_termination_a_device', 'termination_a', '_termination_b_device', 'termination_b', 'a_terminations.device', 'a_terminations', 'b_terminations.device', 'b_terminations']}, 'location': {'text_fields': ['name']}, 'powerfeed': {'text_fields': ['name']}, 'powerpanel': {'text_fields': ['name']}}} PLUGIN_CATALOG_URL = 'https://api.netbox.oss.netboxlabs.com/v1/plugins' PREPEND_WWW = False PROMETHEUS_EXPORT_MIGRATIONS = False QUEUE_MAPPINGS = {} REDIS = {'tasks': {'SOCKET': '/run/valkey-netbox/valkey-server.sock', 'DATABASE': 0}, 'caching': {'SOCKET': '/run/valkey-netbox/valkey-server.sock', 'DATABASE': 1}} RELEASE = ReleaseInfo(version='4.2.3', edition='Community', published=datetime.datetime(2025, 2, 4, 0, 0), designation=None, build=None, features=FeatureSet(commercial=False, help_center=False)) RELEASE_CHECK_URL = 'https://api.github.com/repos/netbox-community/netbox/releases' REMOTE_AUTH_AUTO_CREATE_GROUPS = False REMOTE_AUTH_AUTO_CREATE_USER = False REMOTE_AUTH_BACKEND = ['netbox.authentication.RemoteUserBackend'] REMOTE_AUTH_DEFAULT_GROUPS = [] REMOTE_AUTH_DEFAULT_PERMISSIONS = {} REMOTE_AUTH_ENABLED = False REMOTE_AUTH_GROUP_HEADER = 'HTTP_REMOTE_USER_GROUP' REMOTE_AUTH_GROUP_SEPARATOR = '|' REMOTE_AUTH_GROUP_SYNC_ENABLED = False REMOTE_AUTH_HEADER = 'HTTP_REMOTE_USER' REMOTE_AUTH_STAFF_GROUPS = [] REMOTE_AUTH_STAFF_USERS = [] REMOTE_AUTH_SUPERUSERS = [] REMOTE_AUTH_SUPERUSER_GROUPS = [] REMOTE_AUTH_USER_EMAIL = 'HTTP_REMOTE_USER_EMAIL' REMOTE_AUTH_USER_FIRST_NAME = 'HTTP_REMOTE_USER_FIRST_NAME' REMOTE_AUTH_USER_LAST_NAME = 'HTTP_REMOTE_USER_LAST_NAME' REPORTS_ROOT = '/opt/netbox/netbox/reports' REST_FRAMEWORK = {'ALLOWED_VERSIONS': ['4.2'], 'COERCE_DECIMAL_TO_STRING': False, 'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.SessionAuthentication', 'netbox.api.authentication.TokenAuthentication'), 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend', 'rest_framework.filters.OrderingFilter'), 'DEFAULT_METADATA_CLASS': 'netbox.api.metadata.BulkOperationMetadata', 'DEFAULT_PAGINATION_CLASS': 'netbox.api.pagination.OptionalLimitOffsetPagination', 'DEFAULT_PARSER_CLASSES': ('rest_framework.parsers.JSONParser', 'rest_framework.parsers.MultiPartParser'), 'DEFAULT_PERMISSION_CLASSES': ('netbox.api.authentication.TokenPermissions',), 'DEFAULT_RENDERER_CLASSES': ('rest_framework.renderers.JSONRenderer', 'netbox.api.renderers.FormlessBrowsableAPIRenderer'), 'DEFAULT_SCHEMA_CLASS': 'core.api.schema.NetBoxAutoSchema', 'DEFAULT_VERSION': '4.2', 'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.AcceptHeaderVersioning', 'SCHEMA_COERCE_METHOD_NAMES': {'retrieve': 'read', 'destroy': 'delete', 'bulk_destroy': 'bulk_delete'}, 'VIEW_NAME_FUNCTION': 'utilities.api.get_view_name'} REST_FRAMEWORK_VERSION = '4.2' ROOT_URLCONF = 'netbox.urls' RQ_DEFAULT_TIMEOUT = 300 RQ_PARAMS = {'UNIX_SOCKET_PATH': '/run/valkey-netbox/valkey-server.sock', 'DB': 0, 'USERNAME': '', 'PASSWORD': '********************', 'DEFAULT_TIMEOUT': 300} RQ_QUEUES = {'high': {'UNIX_SOCKET_PATH': '/run/valkey-netbox/valkey-server.sock', 'DB': 0, 'USERNAME': '', 'PASSWORD': '********************', 'DEFAULT_TIMEOUT': 300}, 'default': {'UNIX_SOCKET_PATH': '/run/valkey-netbox/valkey-server.sock', 'DB': 0, 'USERNAME': '', 'PASSWORD': '********************', 'DEFAULT_TIMEOUT': 300}, 'low': {'UNIX_SOCKET_PATH': '/run/valkey-netbox/valkey-server.sock', 'DB': 0, 'USERNAME': '', 'PASSWORD': '********************', 'DEFAULT_TIMEOUT': 300}} RQ_QUEUE_DEFAULT = 'default' RQ_QUEUE_HIGH = 'high' RQ_QUEUE_LOW = 'low' RQ_RETRY_INTERVAL = 60 RQ_RETRY_MAX = 0 SCRIPTS_ROOT = '/opt/netbox/netbox/scripts' SEARCH_BACKEND = 'netbox.search.backends.CachedValueSearchBackend' SECRET_KEY = '********************' SECRET_KEY_FALLBACKS = '********************' SECURE_CONTENT_TYPE_NOSNIFF = True SECURE_CROSS_ORIGIN_OPENER_POLICY = 'same-origin' SECURE_HSTS_INCLUDE_SUBDOMAINS = False SECURE_HSTS_PRELOAD = False SECURE_HSTS_SECONDS = 0 SECURE_PROXY_SSL_HEADER = "('HTTP_X_FORWARDED_PROTO', 'https')" SECURE_REDIRECT_EXEMPT = [] SECURE_REFERRER_POLICY = 'same-origin' SECURE_SSL_HOST = None SECURE_SSL_REDIRECT = True SENTRY_DSN = None SENTRY_ENABLED = False SENTRY_SAMPLE_RATE = 1.0 SENTRY_SEND_DEFAULT_PII = False SENTRY_TAGS = {} SENTRY_TRACES_SAMPLE_RATE = 0 SERIALIZATION_MODULES = {'json': 'utilities.serializers.json'} SERVER_EMAIL = 'REDACTED' SESSION_CACHE_ALIAS = 'default' SESSION_COOKIE_AGE = 1209600 SESSION_COOKIE_DOMAIN = None SESSION_COOKIE_HTTPONLY = True SESSION_COOKIE_NAME = 'sessionid' SESSION_COOKIE_PATH = '/' SESSION_COOKIE_SAMESITE = 'Lax' SESSION_COOKIE_SECURE = True SESSION_ENGINE = 'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE = False SESSION_FILE_PATH = None SESSION_SAVE_EVERY_REQUEST = True SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE = 'netbox.settings' SHORT_DATETIME_FORMAT = 'm/d/Y P' SHORT_DATE_FORMAT = 'm/d/Y' SIGNING_BACKEND = 'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS = [] SOCIAL_AUTH_CLEAN_USERNAME_FUNCTION = 'users.utils.clean_username' SOCIAL_AUTH_JSONFIELD_ENABLED = True SOCIAL_AUTH_PIPELINE = "('social_core.pipeline.social_auth.social_details', 'social_core.pipeline.social_auth.social_uid', 'social_core.pipeline.social_auth.social_user', 'social_core.pipeline.user.get_username', 'social_core.pipeline.user.create_user', 'social_core.pipeline.social_auth.associate_user', 'netbox.authentication.user_default_groups_handler', 'social_core.pipeline.social_auth.load_extra_data', 'social_core.pipeline.user.user_details')" SOCIAL_AUTH_USER_MODEL = 'users.User' SPECTACULAR_SETTINGS = {'TITLE': 'NetBox REST API', 'LICENSE': {'name': 'Apache v2 License'}, 'VERSION': '4.2.3', 'COMPONENT_SPLIT_REQUEST': True, 'REDOC_DIST': 'SIDECAR', 'SERVERS': [{'url': '', 'description': 'NetBox'}], 'SWAGGER_UI_DIST': 'SIDECAR', 'SWAGGER_UI_FAVICON_HREF': 'SIDECAR', 'POSTPROCESSING_HOOKS': []} STATICFILES_DIRS = "('/opt/netbox/netbox/project-static/dist', '/opt/netbox/netbox/project-static/img', '/opt/netbox/netbox/project-static/js', ('docs', '/opt/netbox/netbox/project-static/docs'))" STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATIC_ROOT = '/opt/netbox/netbox/static' STATIC_URL = '/static/' STORAGES = {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'}, 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}} STORAGE_BACKEND = None STORAGE_CONFIG = {} STRAWBERRY_DJANGO = {'DEFAULT_PK_FIELD_NAME': 'id', 'TYPE_DESCRIPTION_FROM_MODEL_DOCSTRING': True, 'USE_DEPRECATED_FILTERS': True} TASKS_REDIS = {'SOCKET': '/run/valkey-netbox/valkey-server.sock', 'DATABASE': 0} TASKS_REDIS_CA_CERT_PATH = False TASKS_REDIS_DATABASE = 0 TASKS_REDIS_HOST = 'localhost' TASKS_REDIS_PASSWORD = '********************' TASKS_REDIS_PORT = 6379 TASKS_REDIS_SENTINELS = [] TASKS_REDIS_SENTINEL_SERVICE = 'default' TASKS_REDIS_SENTINEL_TIMEOUT = 10 TASKS_REDIS_SKIP_TLS_VERIFY = False TASKS_REDIS_SOCKET = '/run/valkey-netbox/valkey-server.sock' TASKS_REDIS_SSL = False TASKS_REDIS_URL = None TASKS_REDIS_USERNAME = '' TASKS_REDIS_USING_SENTINEL = False TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/opt/netbox/netbox/templates'], 'APP_DIRS': True, 'OPTIONS': {'builtins': ['utilities.templatetags.builtins.filters', 'utilities.templatetags.builtins.tags'], 'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.template.context_processors.media', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'netbox.context_processors.settings', 'netbox.context_processors.config', 'netbox.context_processors.registry', 'netbox.context_processors.preferences']}}] TEMPLATES_DIR = '/opt/netbox/netbox/templates' TEST_NON_SERIALIZED_APPS = [] TEST_RUNNER = 'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR = ',' TIME_FORMAT = 'P' TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] TIME_ZONE = 'Pacific/Auckland' TRANSLATION_ENABLED = True USE_I18N = True USE_THOUSAND_SEPARATOR = False USE_TZ = True USE_X_FORWARDED_HOST = True USE_X_FORWARDED_PORT = False VERSION = '4.2.3' WSGI_APPLICATION = 'netbox.wsgi.application' X_FRAME_OPTIONS = 'SAMEORIGIN' YEAR_MONTH_FORMAT = 'F Y' ```
adam added the type: bugstatus: acceptedseverity: low labels 2025-12-29 21:35:27 +01:00
adam closed this issue 2025-12-29 21:35:28 +01:00
Author
Owner

@tomryder-inspirenet commented on GitHub (Feb 7, 2025):

I believe this is because a line is missing in the method added in this commit: e12a5d2edc

     def get_extra_addanother_params(self, request):
         if 'interface' in request.GET:
             return {'interface': request.GET['interface']}
         elif 'vminterface' in request.GET:
             return {'vminterface': request.GET['vminterface']}
+        return {}
@tomryder-inspirenet commented on GitHub (Feb 7, 2025): I believe this is because a line is missing in the method added in this commit: e12a5d2edc9f93bfb7651c13fd9bf5d2d9abf9c9 ```diff def get_extra_addanother_params(self, request): if 'interface' in request.GET: return {'interface': request.GET['interface']} elif 'vminterface' in request.GET: return {'vminterface': request.GET['vminterface']} + return {} ```
Author
Owner

@renatoalmeidaoliveira commented on GitHub (Feb 7, 2025):

I can fix this issue, can it be assigned to me?

@renatoalmeidaoliveira commented on GitHub (Feb 7, 2025): I can fix this issue, can it be assigned to me?
Author
Owner

@eudjinnl commented on GitHub (Feb 7, 2025):

Face the same issue

@eudjinnl commented on GitHub (Feb 7, 2025): Face the same issue
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#10745