Error when attempting to bulk add IP addresses #718

Closed
opened 2025-12-29 16:25:04 +01:00 by adam · 2 comments
Owner

Originally created by @dl-sledding on GitHub (Feb 20, 2017).

I receive an error when attempting to add bulk addresses. The web interface states:

Server Error
There was a problem with your request. This error has been logged and administrative staff have been notified. Please return to the home page and try again.

If you are responsible for this installation, please consider filing a bug report. Additional information is provided below:

<class 'TypeError'>
'KeysView' object does not support indexing

Contents of administrative e-mail report:

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

TypeError at /ipam/ip-addresses/bulk-add/
'KeysView' object does not support indexing

Request Method: POST
Request URL: http://netbox.gondtc.com/ipam/ip-addresses/bulk-add/
Django Version: 1.10.5
Python Executable: /usr/bin/python3.4
Python Version: 3.4.5
Python Path: ['/opt/netbox-1.8.4/netbox', '/opt/netbox/netbox', '/usr/bin', '/usr/lib64/python34.zip', '/usr/lib64/python3.4', '/usr/lib64/python3.4/plat-linux', '/usr/lib64/python3.4/lib-dynload', '/usr/lib64/python3.4/site-packages', '/usr/lib/python3.4/site-packages']
Server time: Mon, 20 Feb 2017 16:21:53 +0000
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.humanize',
 'debug_toolbar',
 'django_tables2',
 'rest_framework',
 'rest_framework_swagger',
 'circuits',
 'dcim',
 'ipam',
 'extras',
 'secrets',
 'tenancy',
 'users',
 'utilities')
Installed Middleware:
('debug_toolbar.middleware.DebugToolbarMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware',
 'utilities.middleware.LoginRequiredMiddleware')


Traceback:  

File "/usr/lib/python3.4/site-packages/django/core/handlers/exception.py" in inner
  39.             response = get_response(request)

File "/usr/lib/python3.4/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/usr/lib/python3.4/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/usr/lib/python3.4/site-packages/django/views/generic/base.py" in view
  68.             return self.dispatch(request, *args, **kwargs)

File "/usr/lib/python3.4/site-packages/django/contrib/auth/mixins.py" in dispatch
  92.         return super(PermissionRequiredMixin, self).dispatch(request, *args, **kwargs)

File "/usr/lib/python3.4/site-packages/django/views/generic/base.py" in dispatch
  88.         return handler(request, *args, **kwargs)

File "/opt/netbox-1.8.4/netbox/utilities/views.py" in post
  310.             pattern_field = form.fields.keys()[0]

Exception Type: TypeError at /ipam/ip-addresses/bulk-add/
Exception Value: 'KeysView' object does not support indexing
Request information:
USER: alex

GET: No GET data

POST:
status = '5'
description = ''
vrf = ''
tenant = ''
csrfmiddlewaretoken = 'Izc83H4lkTpeUh0gsNFrhON2FbP7B7fn65KRGb2VXsFYrVVj9oCrs6QdHo56YjwT'
address = '64.21.224.[5-116]/24'
_create = ''

FILES: No FILES data

COOKIES:
sessionid = 'w1fhucvxatt4jukllonlldu23704db6c'
csrftoken = 'SbopJzeTZw2AVC6miZwYfoQzOLCDZNKEgHW8m3ctC5iksg1pZAtYqGTKQYSCmZ1a'

META:
CONTENT_LENGTH = '163'
CONTENT_TYPE = 'application/x-www-form-urlencoded'
CSRF_COOKIE = 'SbopJzeTZw2AVC6miZwYfoQzOLCDZNKEgHW8m3ctC5iksg1pZAtYqGTKQYSCmZ1a'
HTTP_ACCEPT = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
HTTP_ACCEPT_ENCODING = 'gzip, deflate'
HTTP_ACCEPT_LANGUAGE = 'en-US,en;q=0.8'
HTTP_CACHE_CONTROL = 'max-age=0'
HTTP_CONNECTION = 'Keep-Alive'
HTTP_COOKIE = 'sessionid=w1fhucvxatt4jukllonlldu23704db6c; csrftoken=SbopJzeTZw2AVC6miZwYfoQzOLCDZNKEgHW8m3ctC5iksg1pZAtYqGTKQYSCmZ1a'
HTTP_HOST = 'netbox.gondtc.com'
HTTP_ORIGIN = 'http://netbox.gondtc.com'
HTTP_REFERER = 'http://netbox.gondtc.com/ipam/ip-addresses/bulk-add/'
HTTP_UPGRADE_INSECURE_REQUESTS = '1'
HTTP_USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36'
HTTP_X_FORWARDED_FOR = '192.168.254.174'
HTTP_X_FORWARDED_HOST = 'netbox.gondtc.com'
HTTP_X_FORWARDED_SERVER = 'netbox.gondtc.com'
PATH_INFO = '/ipam/ip-addresses/bulk-add/'
QUERY_STRING = ''
RAW_URI = '/ipam/ip-addresses/bulk-add/'
REMOTE_ADDR = '127.0.0.1'
REMOTE_PORT = '59280'
REQUEST_METHOD = 'POST'
SCRIPT_NAME = ''
SERVER_NAME = '127.0.0.1'
SERVER_PORT = '8001'
SERVER_PROTOCOL = 'HTTP/1.1'
SERVER_SOFTWARE = 'gunicorn/19.6.0'
gunicorn.socket = <socket.socket fd=12, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 8001), raddr=('127.0.0.1', 59280)>
wsgi.errors = <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f43a6990940>
wsgi.file_wrapper = ''
wsgi.input = <gunicorn.http.body.Body object at 0x7f43a69909b0>
wsgi.multiprocess = True
wsgi.multithread = False
wsgi.run_once = False
wsgi.url_scheme = 'http'
wsgi.version = 

Settings:
Using settings module netbox.settings
ABSOLUTE_URL_OVERRIDES = {}
ADMINS = [['NDTC IT', 'scn@ndtel.com']]
ALLOWED_HOSTS = ['netbox.gondtc.com', 'ipam.ndtel.com', '192.168.254.23', 'ipam', '127.0.0.1']
APPEND_SLASH = True
AUTHENTICATION_BACKENDS = ['django_auth_ldap.backend.LDAPBackend', 'django.contrib.auth.backends.ModelBackend']
AUTH_LDAP_BIND_DN = 'cn=admin,o=ndtc'
AUTH_LDAP_BIND_PASSWORD = '********************'
AUTH_LDAP_SERVER_URI = 'ldap://66.163.128.204/'
AUTH_LDAP_USER_ATTR_MAP = {'last_name': 'sn', 'first_name': 'givenName'}
AUTH_LDAP_USER_SEARCH = <django_auth_ldap.config.LDAPSearch object at 0x7f43ab3d7a90>
AUTH_PASSWORD_VALIDATORS = '********************'
AUTH_USER_MODEL = 'auth.User'
BANNER_BOTTOM = ''
BANNER_TOP = ''
BASE_DIR = '/opt/netbox-1.8.4/netbox'
BASE_PATH = ''
CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
CACHE_MIDDLEWARE_SECONDS = 600
CSRF_COOKIE_AGE = 31449600
CSRF_COOKIE_DOMAIN = None
CSRF_COOKIE_HTTPONLY = False
CSRF_COOKIE_NAME = 'csrftoken'
CSRF_COOKIE_PATH = '/'
CSRF_COOKIE_SECURE = False
CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS = ['netbox.gondtc.com', 'ipam.ndtel.com', '192.168.254.23', 'ipam', '127.0.0.1']
DATABASE = {'ATOMIC_REQUESTS': False, 'TEST': {'COLLATION': None, 'CHARSET': None, 'MIRROR': None, 'NAME': None}, 'USER': 'netbox', 'HOST': 'localhost', 'ENGINE': 'django.db.backends.postgresql', 'OPTIONS': {}, 'PORT': '', 'AUTOCOMMIT': True, 'PASSWORD': '********************', 'TIME_ZONE': None, 'CONN_MAX_AGE': 0, 'NAME': 'netbox'}
DATABASES = {'default': {'ATOMIC_REQUESTS': False, 'TEST': {'COLLATION': None, 'CHARSET': None, 'MIRROR': None, 'NAME': None}, 'USER': 'netbox', 'HOST': 'localhost', 'ENGINE': 'django.db.backends.postgresql', 'OPTIONS': {}, 'PORT': '', 'AUTOCOMMIT': True, 'PASSWORD': '********************', 'TIME_ZONE': None, 'CONN_MAX_AGE': 0, 'NAME': 'netbox'}}
DATABASE_ROUTERS = []
DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS = None
DATETIME_FORMAT = 'N j, Y g:i a'
DATETIME_INPUT_FORMATS = ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%Y-%m-%d', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%Y', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M', '%m/%d/%y']
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_CHARSET = 'utf-8'
DEFAULT_CONTENT_TYPE = 'text/html'
DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL = 'webmaster@localhost'
DEFAULT_INDEX_TABLESPACE = ''
DEFAULT_TABLESPACE = ''
DISALLOWED_USER_AGENTS = []
EMAIL = {'PASSWORD': '********************', 'FROM_EMAIL': 'netbox@ndtel.com', 'USERNAME': '', 'TIMEOUT': 10, 'SERVER': 'mail.ndtel.com', 'PORT': 25}
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'mail.ndtel.com'
EMAIL_HOST_PASSWORD = '********************'
EMAIL_HOST_USER = ''
EMAIL_PORT = 25
EMAIL_SSL_CERTFILE = None
EMAIL_SSL_KEYFILE = '********************'
EMAIL_SUBJECT_PREFIX = '[NetBox] '
EMAIL_TIMEOUT = 10
EMAIL_USE_SSL = False
EMAIL_USE_TLS = False
ENFORCE_GLOBAL_UNIQUE = False
FILE_CHARSET = 'utf-8'
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 = None
FILE_UPLOAD_TEMP_DIR = None
FIRST_DAY_OF_WEEK = 0
FIXTURE_DIRS = []
FORCE_SCRIPT_NAME = None
FORMAT_MODULE_PATH = None
HOSTNAME = 'ipam.ndtel.com'
IGNORABLE_404_URLS = []
INSTALLED_APPS = 
INTERNAL_IPS = 
LANGUAGES = [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('th', 'Thai'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')]
LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur']
LANGUAGE_CODE = 'en-us'
LANGUAGE_COOKIE_AGE = None
LANGUAGE_COOKIE_DOMAIN = None
LANGUAGE_COOKIE_NAME = 'django_language'
LANGUAGE_COOKIE_PATH = '/'
LDAP_CONFIGURED = True
LDAP_IGNORE_CERT_ERRORS = True
LOCALE_PATHS = []
LOGGING = {}
LOGGING_CONFIG = 'logging.config.dictConfig'
LOGIN_REDIRECT_URL = '/accounts/profile/'
LOGIN_REQUIRED = False
LOGIN_URL = '/login/'
LOGOUT_REDIRECT_URL = None
MAINTENANCE_MODE = False
MANAGERS = []
MEDIA_ROOT = ''
MEDIA_URL = ''
MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
MESSAGE_TAGS = {40: 'danger'}
MIDDLEWARE = 
MIDDLEWARE_CLASSES = ['django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware']
MIGRATION_MODULES = {}
MONTH_DAY_FORMAT = 'F j'
NETBOX_PASSWORD = '********************'
NETBOX_USERNAME = ''
NUMBER_GROUPING = 0
PAGINATE_COUNT = 50
PASSWORD_HASHERS = '********************'
PASSWORD_RESET_TIMEOUT_DAYS = '********************'
PREFER_IPV4 = False
PREPEND_WWW = False
REST_FRAMEWORK = {'DEFAULT_FILTER_BACKENDS': ('rest_framework.filters.DjangoFilterBackend',)}
ROOT_URLCONF = 'netbox.urls'
SECRETS_MIN_PUBKEY_SIZE = '********************'
SECRET_KEY = '********************'
SECURE_BROWSER_XSS_FILTER = False
SECURE_CONTENT_TYPE_NOSNIFF = False
SECURE_HSTS_INCLUDE_SUBDOMAINS = False
SECURE_HSTS_SECONDS = 0
SECURE_PROXY_SSL_HEADER = 
SECURE_REDIRECT_EXEMPT = []
SECURE_SSL_HOST = None
SECURE_SSL_REDIRECT = False
SERVER_EMAIL = 'netbox@ndtel.com'
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_SECURE = False
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_FILE_PATH = None
SESSION_SAVE_EVERY_REQUEST = False
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE = 'netbox.settings'
SHORT_DATETIME_FORMAT = 'Y-m-d H:i'
SHORT_DATE_FORMAT = 'Y-m-d'
SHORT_TIME_FORMAT = 'H:i:s'
SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS = []
STATICFILES_DIRS = '/opt/netbox-1.8.4/netbox/project-static'
STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT = '/opt/netbox-1.8.4/netbox/static/'
STATIC_URL = '/static/'
TEMPLATES = [{'APP_DIRS': True, 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'utilities.context_processors.settings']}, 'DIRS': ['/opt/netbox-1.8.4/netbox/templates/'], 'BACKEND': 'django.template.backends.django.DjangoTemplates'}]
TEST_NON_SERIALIZED_APPS = []
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR = ','
TIME_FORMAT = 'g:i a'
TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE = 'UTC'
USE_ETAGS = False
USE_I18N = True
USE_L10N = False
USE_THOUSAND_SEPARATOR = False
USE_TZ = True
USE_X_FORWARDED_HOST = True
USE_X_FORWARDED_PORT = False
VERSION = '1.8.4'
WSGI_APPLICATION = 'netbox.wsgi.application'
X_FRAME_OPTIONS = 'SAMEORIGIN'
YEAR_MONTH_FORMAT = 'F Y'

Any suggestions on fixing this?

TIA!

Alex

Originally created by @dl-sledding on GitHub (Feb 20, 2017). I receive an error when attempting to add bulk addresses. The web interface states: ``` Server Error There was a problem with your request. This error has been logged and administrative staff have been notified. Please return to the home page and try again. If you are responsible for this installation, please consider filing a bug report. Additional information is provided below: <class 'TypeError'> 'KeysView' object does not support indexing ``` Contents of administrative e-mail report: ``` Internal Server Error: /ipam/ip-addresses/bulk-add/ TypeError at /ipam/ip-addresses/bulk-add/ 'KeysView' object does not support indexing Request Method: POST Request URL: http://netbox.gondtc.com/ipam/ip-addresses/bulk-add/ Django Version: 1.10.5 Python Executable: /usr/bin/python3.4 Python Version: 3.4.5 Python Path: ['/opt/netbox-1.8.4/netbox', '/opt/netbox/netbox', '/usr/bin', '/usr/lib64/python34.zip', '/usr/lib64/python3.4', '/usr/lib64/python3.4/plat-linux', '/usr/lib64/python3.4/lib-dynload', '/usr/lib64/python3.4/site-packages', '/usr/lib/python3.4/site-packages'] Server time: Mon, 20 Feb 2017 16:21:53 +0000 Installed Applications: ('django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'debug_toolbar', 'django_tables2', 'rest_framework', 'rest_framework_swagger', 'circuits', 'dcim', 'ipam', 'extras', 'secrets', 'tenancy', 'users', 'utilities') Installed Middleware: ('debug_toolbar.middleware.DebugToolbarMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'utilities.middleware.LoginRequiredMiddleware') Traceback: File "/usr/lib/python3.4/site-packages/django/core/handlers/exception.py" in inner 39. response = get_response(request) File "/usr/lib/python3.4/site-packages/django/core/handlers/base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request) File "/usr/lib/python3.4/site-packages/django/core/handlers/base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python3.4/site-packages/django/views/generic/base.py" in view 68. return self.dispatch(request, *args, **kwargs) File "/usr/lib/python3.4/site-packages/django/contrib/auth/mixins.py" in dispatch 92. return super(PermissionRequiredMixin, self).dispatch(request, *args, **kwargs) File "/usr/lib/python3.4/site-packages/django/views/generic/base.py" in dispatch 88. return handler(request, *args, **kwargs) File "/opt/netbox-1.8.4/netbox/utilities/views.py" in post 310. pattern_field = form.fields.keys()[0] Exception Type: TypeError at /ipam/ip-addresses/bulk-add/ Exception Value: 'KeysView' object does not support indexing Request information: USER: alex GET: No GET data POST: status = '5' description = '' vrf = '' tenant = '' csrfmiddlewaretoken = 'Izc83H4lkTpeUh0gsNFrhON2FbP7B7fn65KRGb2VXsFYrVVj9oCrs6QdHo56YjwT' address = '64.21.224.[5-116]/24' _create = '' FILES: No FILES data COOKIES: sessionid = 'w1fhucvxatt4jukllonlldu23704db6c' csrftoken = 'SbopJzeTZw2AVC6miZwYfoQzOLCDZNKEgHW8m3ctC5iksg1pZAtYqGTKQYSCmZ1a' META: CONTENT_LENGTH = '163' CONTENT_TYPE = 'application/x-www-form-urlencoded' CSRF_COOKIE = 'SbopJzeTZw2AVC6miZwYfoQzOLCDZNKEgHW8m3ctC5iksg1pZAtYqGTKQYSCmZ1a' HTTP_ACCEPT = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' HTTP_ACCEPT_ENCODING = 'gzip, deflate' HTTP_ACCEPT_LANGUAGE = 'en-US,en;q=0.8' HTTP_CACHE_CONTROL = 'max-age=0' HTTP_CONNECTION = 'Keep-Alive' HTTP_COOKIE = 'sessionid=w1fhucvxatt4jukllonlldu23704db6c; csrftoken=SbopJzeTZw2AVC6miZwYfoQzOLCDZNKEgHW8m3ctC5iksg1pZAtYqGTKQYSCmZ1a' HTTP_HOST = 'netbox.gondtc.com' HTTP_ORIGIN = 'http://netbox.gondtc.com' HTTP_REFERER = 'http://netbox.gondtc.com/ipam/ip-addresses/bulk-add/' HTTP_UPGRADE_INSECURE_REQUESTS = '1' HTTP_USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36' HTTP_X_FORWARDED_FOR = '192.168.254.174' HTTP_X_FORWARDED_HOST = 'netbox.gondtc.com' HTTP_X_FORWARDED_SERVER = 'netbox.gondtc.com' PATH_INFO = '/ipam/ip-addresses/bulk-add/' QUERY_STRING = '' RAW_URI = '/ipam/ip-addresses/bulk-add/' REMOTE_ADDR = '127.0.0.1' REMOTE_PORT = '59280' REQUEST_METHOD = 'POST' SCRIPT_NAME = '' SERVER_NAME = '127.0.0.1' SERVER_PORT = '8001' SERVER_PROTOCOL = 'HTTP/1.1' SERVER_SOFTWARE = 'gunicorn/19.6.0' gunicorn.socket = <socket.socket fd=12, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 8001), raddr=('127.0.0.1', 59280)> wsgi.errors = <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f43a6990940> wsgi.file_wrapper = '' wsgi.input = <gunicorn.http.body.Body object at 0x7f43a69909b0> wsgi.multiprocess = True wsgi.multithread = False wsgi.run_once = False wsgi.url_scheme = 'http' wsgi.version = Settings: Using settings module netbox.settings ABSOLUTE_URL_OVERRIDES = {} ADMINS = [['NDTC IT', 'scn@ndtel.com']] ALLOWED_HOSTS = ['netbox.gondtc.com', 'ipam.ndtel.com', '192.168.254.23', 'ipam', '127.0.0.1'] APPEND_SLASH = True AUTHENTICATION_BACKENDS = ['django_auth_ldap.backend.LDAPBackend', 'django.contrib.auth.backends.ModelBackend'] AUTH_LDAP_BIND_DN = 'cn=admin,o=ndtc' AUTH_LDAP_BIND_PASSWORD = '********************' AUTH_LDAP_SERVER_URI = 'ldap://66.163.128.204/' AUTH_LDAP_USER_ATTR_MAP = {'last_name': 'sn', 'first_name': 'givenName'} AUTH_LDAP_USER_SEARCH = <django_auth_ldap.config.LDAPSearch object at 0x7f43ab3d7a90> AUTH_PASSWORD_VALIDATORS = '********************' AUTH_USER_MODEL = 'auth.User' BANNER_BOTTOM = '' BANNER_TOP = '' BASE_DIR = '/opt/netbox-1.8.4/netbox' BASE_PATH = '' CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} CACHE_MIDDLEWARE_ALIAS = 'default' CACHE_MIDDLEWARE_KEY_PREFIX = '********************' CACHE_MIDDLEWARE_SECONDS = 600 CSRF_COOKIE_AGE = 31449600 CSRF_COOKIE_DOMAIN = None CSRF_COOKIE_HTTPONLY = False CSRF_COOKIE_NAME = 'csrftoken' CSRF_COOKIE_PATH = '/' CSRF_COOKIE_SECURE = False CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure' CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS = ['netbox.gondtc.com', 'ipam.ndtel.com', '192.168.254.23', 'ipam', '127.0.0.1'] DATABASE = {'ATOMIC_REQUESTS': False, 'TEST': {'COLLATION': None, 'CHARSET': None, 'MIRROR': None, 'NAME': None}, 'USER': 'netbox', 'HOST': 'localhost', 'ENGINE': 'django.db.backends.postgresql', 'OPTIONS': {}, 'PORT': '', 'AUTOCOMMIT': True, 'PASSWORD': '********************', 'TIME_ZONE': None, 'CONN_MAX_AGE': 0, 'NAME': 'netbox'} DATABASES = {'default': {'ATOMIC_REQUESTS': False, 'TEST': {'COLLATION': None, 'CHARSET': None, 'MIRROR': None, 'NAME': None}, 'USER': 'netbox', 'HOST': 'localhost', 'ENGINE': 'django.db.backends.postgresql', 'OPTIONS': {}, 'PORT': '', 'AUTOCOMMIT': True, 'PASSWORD': '********************', 'TIME_ZONE': None, 'CONN_MAX_AGE': 0, 'NAME': 'netbox'}} DATABASE_ROUTERS = [] DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS = None DATETIME_FORMAT = 'N j, Y g:i a' DATETIME_INPUT_FORMATS = ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%Y-%m-%d', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%Y', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M', '%m/%d/%y'] 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_CHARSET = 'utf-8' DEFAULT_CONTENT_TYPE = 'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL = 'webmaster@localhost' DEFAULT_INDEX_TABLESPACE = '' DEFAULT_TABLESPACE = '' DISALLOWED_USER_AGENTS = [] EMAIL = {'PASSWORD': '********************', 'FROM_EMAIL': 'netbox@ndtel.com', 'USERNAME': '', 'TIMEOUT': 10, 'SERVER': 'mail.ndtel.com', 'PORT': 25} EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'mail.ndtel.com' EMAIL_HOST_PASSWORD = '********************' EMAIL_HOST_USER = '' EMAIL_PORT = 25 EMAIL_SSL_CERTFILE = None EMAIL_SSL_KEYFILE = '********************' EMAIL_SUBJECT_PREFIX = '[NetBox] ' EMAIL_TIMEOUT = 10 EMAIL_USE_SSL = False EMAIL_USE_TLS = False ENFORCE_GLOBAL_UNIQUE = False FILE_CHARSET = 'utf-8' 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 = None FILE_UPLOAD_TEMP_DIR = None FIRST_DAY_OF_WEEK = 0 FIXTURE_DIRS = [] FORCE_SCRIPT_NAME = None FORMAT_MODULE_PATH = None HOSTNAME = 'ipam.ndtel.com' IGNORABLE_404_URLS = [] INSTALLED_APPS = INTERNAL_IPS = LANGUAGES = [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('th', 'Thai'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur'] LANGUAGE_CODE = 'en-us' LANGUAGE_COOKIE_AGE = None LANGUAGE_COOKIE_DOMAIN = None LANGUAGE_COOKIE_NAME = 'django_language' LANGUAGE_COOKIE_PATH = '/' LDAP_CONFIGURED = True LDAP_IGNORE_CERT_ERRORS = True LOCALE_PATHS = [] LOGGING = {} LOGGING_CONFIG = 'logging.config.dictConfig' LOGIN_REDIRECT_URL = '/accounts/profile/' LOGIN_REQUIRED = False LOGIN_URL = '/login/' LOGOUT_REDIRECT_URL = None MAINTENANCE_MODE = False MANAGERS = [] MEDIA_ROOT = '' MEDIA_URL = '' MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage' MESSAGE_TAGS = {40: 'danger'} MIDDLEWARE = MIDDLEWARE_CLASSES = ['django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware'] MIGRATION_MODULES = {} MONTH_DAY_FORMAT = 'F j' NETBOX_PASSWORD = '********************' NETBOX_USERNAME = '' NUMBER_GROUPING = 0 PAGINATE_COUNT = 50 PASSWORD_HASHERS = '********************' PASSWORD_RESET_TIMEOUT_DAYS = '********************' PREFER_IPV4 = False PREPEND_WWW = False REST_FRAMEWORK = {'DEFAULT_FILTER_BACKENDS': ('rest_framework.filters.DjangoFilterBackend',)} ROOT_URLCONF = 'netbox.urls' SECRETS_MIN_PUBKEY_SIZE = '********************' SECRET_KEY = '********************' SECURE_BROWSER_XSS_FILTER = False SECURE_CONTENT_TYPE_NOSNIFF = False SECURE_HSTS_INCLUDE_SUBDOMAINS = False SECURE_HSTS_SECONDS = 0 SECURE_PROXY_SSL_HEADER = SECURE_REDIRECT_EXEMPT = [] SECURE_SSL_HOST = None SECURE_SSL_REDIRECT = False SERVER_EMAIL = 'netbox@ndtel.com' 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_SECURE = False SESSION_ENGINE = 'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE = False SESSION_FILE_PATH = None SESSION_SAVE_EVERY_REQUEST = False SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE = 'netbox.settings' SHORT_DATETIME_FORMAT = 'Y-m-d H:i' SHORT_DATE_FORMAT = 'Y-m-d' SHORT_TIME_FORMAT = 'H:i:s' SIGNING_BACKEND = 'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS = [] STATICFILES_DIRS = '/opt/netbox-1.8.4/netbox/project-static' STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT = '/opt/netbox-1.8.4/netbox/static/' STATIC_URL = '/static/' TEMPLATES = [{'APP_DIRS': True, 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'utilities.context_processors.settings']}, 'DIRS': ['/opt/netbox-1.8.4/netbox/templates/'], 'BACKEND': 'django.template.backends.django.DjangoTemplates'}] TEST_NON_SERIALIZED_APPS = [] TEST_RUNNER = 'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR = ',' TIME_FORMAT = 'g:i a' TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] TIME_ZONE = 'UTC' USE_ETAGS = False USE_I18N = True USE_L10N = False USE_THOUSAND_SEPARATOR = False USE_TZ = True USE_X_FORWARDED_HOST = True USE_X_FORWARDED_PORT = False VERSION = '1.8.4' WSGI_APPLICATION = 'netbox.wsgi.application' X_FRAME_OPTIONS = 'SAMEORIGIN' YEAR_MONTH_FORMAT = 'F Y' ``` Any suggestions on fixing this? TIA! Alex
adam added the status: duplicate label 2025-12-29 16:25:04 +01:00
adam closed this issue 2025-12-29 16:25:04 +01:00
Author
Owner

@jeremystretch commented on GitHub (Feb 21, 2017):

Looks like a duplicate of #872 (fixed in the develop branch and will be out in v1.9)

@jeremystretch commented on GitHub (Feb 21, 2017): Looks like a duplicate of #872 (fixed in the `develop` branch and will be out in v1.9)
Author
Owner

@dl-sledding commented on GitHub (Feb 21, 2017):

Oh ok.. No prob. Since this is already addressed we can delete it.

Thanks!

@dl-sledding commented on GitHub (Feb 21, 2017): Oh ok.. No prob. Since this is already addressed we can delete it. Thanks!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#718