· 7 years ago · Jul 20, 2018, 09:24 AM
1TypeError at /api/sms/batches/
2'NoneType' object is not iterable
3
4Request Method: POST
5Request URL: https://dev.suze.io/api/sms/batches/
6Django Version: 2.0.5
7Python Executable: /home/vhost/qa/env/bin/python3
8Python Version: 3.6.5
9Python Path: ['.', '/home/vhost/qa/env/bin', '/home/vhost/qa/env/lib/python36.zip', '/home/vhost/qa/env/lib/python3.6', '/home/vhost/qa/env/lib/python3.6/lib-dynload', '/usr/lib/python3.6', '/home/vhost/qa/env/lib/python3.6/site-packages', '/home/vhost/qa/env/src/django-tree-settings', '/home/vhost/qa/src/server']
10Server time: Пт, 20 Июл 2018 12:20:29 +0300
11Installed Applications:
12['django.contrib.admin',
13 'django.contrib.auth',
14 'django.contrib.contenttypes',
15 'django.contrib.sessions',
16 'django.contrib.messages',
17 'django.contrib.staticfiles',
18 'channels',
19 'rest_framework',
20 'rest_framework.authtoken',
21 'rest_auth',
22 'corsheaders',
23 'raven.contrib.django.raven_compat',
24 'answers',
25 'batches',
26 'conf',
27 'catalog',
28 'common',
29 'companies',
30 'customers',
31 'mail',
32 'sms',
33 'outlets',
34 'promotions',
35 'sales',
36 'segments',
37 'drf_yasg',
38 'constance',
39 'constance.backends.database']
40Installed Middleware:
41['raven.contrib.django.middleware.DjangoRestFrameworkCompatMiddleware',
42 'raven.contrib.django.middleware.SentryMiddleware',
43 'django.middleware.security.SecurityMiddleware',
44 'django.contrib.sessions.middleware.SessionMiddleware',
45 'django.middleware.common.CommonMiddleware',
46 'django.middleware.csrf.CsrfViewMiddleware',
47 'django.contrib.auth.middleware.AuthenticationMiddleware',
48 'django.contrib.messages.middleware.MessageMiddleware',
49 'django.middleware.clickjacking.XFrameOptionsMiddleware']
50
51
52Traceback:
53
54File "/home/vhost/qa/env/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
55 35. response = get_response(request)
56
57File "/home/vhost/qa/env/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
58 128. response = self.process_exception_by_middleware(e, request)
59
60File "/home/vhost/qa/env/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
61 126. response = wrapped_callback(request, *callback_args, **callback_kwargs)
62
63File "/home/vhost/qa/env/lib/python3.6/site-packages/django/views/decorators/csrf.py" in wrapped_view
64 54. return view_func(*args, **kwargs)
65
66File "/home/vhost/qa/env/lib/python3.6/site-packages/rest_framework/viewsets.py" in view
67 103. return self.dispatch(request, *args, **kwargs)
68
69File "/home/vhost/qa/env/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
70 483. response = self.handle_exception(exc)
71
72File "/home/vhost/qa/env/lib/python3.6/site-packages/rest_framework/views.py" in handle_exception
73 443. self.raise_uncaught_exception(exc)
74
75File "/home/vhost/qa/env/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
76 480. response = handler(request, *args, **kwargs)
77
78File "./sms/views.py" in create
79 49. for segment in segments:
80
81Exception Type: TypeError at /api/sms/batches/
82Exception Value: 'NoneType' object is not iterable
83Request information:
84USER: admin
85
86GET: No GET data
87
88POST: No POST data
89
90FILES: No FILES data
91
92COOKIES:
93_ga = 'GA1.1.1996408327.1510034344'
94csrftoken = 'iTI9TdtuClDMIYCdh8Xiw4cDdzlrniG73AlaT16w7YW4OLyNfD3k927MU03WO7Wy'
95sessionid = 'o6lx6a6wg7rujrt1eesse9orzekle6if'
96
97META:
98CONTENT_LENGTH = '109'
99CONTENT_TYPE = 'application/json'
100CSRF_COOKIE = 'iTI9TdtuClDMIYCdh8Xiw4cDdzlrniG73AlaT16w7YW4OLyNfD3k927MU03WO7Wy'
101HTTP_ACCEPT = 'application/json, text/plain, */*'
102HTTP_ACCEPT_ENCODING = 'gzip, deflate, br'
103HTTP_ACCEPT_LANGUAGE = 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7,pt;q=0.6'
104HTTP_AUTHORIZATION = 'Token bccdc32a58e1d5cd1304c1767f7121f87e098dcd'
105HTTP_CACHE_CONTROL = 'no-cache'
106HTTP_CONNECTION = 'close'
107HTTP_COOKIE = '_ga=GA1.1.1996408327.1510034344; csrftoken=iTI9TdtuClDMIYCdh8Xiw4cDdzlrniG73AlaT16w7YW4OLyNfD3k927MU03WO7Wy; sessionid=o6lx6a6wg7rujrt1eesse9orzekle6if'
108HTTP_HOST = 'dev.suze.io'
109HTTP_ORIGIN = 'http://localhost:4200'
110HTTP_PRAGMA = 'no-cache'
111HTTP_REFERER = 'http://localhost:4200/promotions/active/b705a356-8809-4e7d-a05c-42495751f71a/sms/new'
112HTTP_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
113HTTP_X_FORWARDED_FOR = '88.200.228.153'
114HTTP_X_FORWARDED_PROTOCOL = 'https'
115HTTP_X_REAL_IP = '88.200.228.153'
116PATH_INFO = '/api/sms/batches/'
117QUERY_STRING = ''
118REMOTE_ADDR = '127.0.0.1'
119REMOTE_HOST = '127.0.0.1'
120REMOTE_PORT = 35604
121REQUEST_METHOD = 'POST'
122SCRIPT_NAME = ''
123SERVER_NAME = '127.0.0.1'
124SERVER_PORT = '8583'
125wsgi.multiprocess = True
126wsgi.multithread = True
127
128Settings:
129Using settings module conf.settings
130ABSOLUTE_URL_OVERRIDES = {}
131ADMINS = []
132ALLOWED_HOSTS = ['*']
133APPEND_SLASH = True
134ASGI_APPLICATION = 'conf.routing.application'
135AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
136AUTH_PASSWORD_VALIDATORS = '********************'
137AUTH_USER_MODEL = 'common.User'
138BATCH_TIME_LIMIT = 3600
139BROKER_URL = 'redis://localhost:6379/3'
140CACHEOPS = {'companies.company': {'ops': 'get', 'timeout': 900}, 'rest_framework.authtoken.*': '********************', 'catalog.*': {'ops': 'all', 'timeout': 900}, 'customers.*': {'ops': 'all', 'timeout': 900}, 'outlets.*': {'ops': 'all', 'timeout': 900}, 'promotions.*': {'ops': 'all', 'timeout': 900}, 'segments.*': {'ops': 'all', 'timeout': 900}}
141CACHEOPS_REDIS = 'redis://localhost:6379/1'
142CACHES = {'default': {'BACKEND': 'redis_cache.RedisCache', 'LOCATION': ['127.0.0.1:6379'], 'OPTIONS': {'DB': 1, 'PARSER_CLASS': 'redis.connection.HiredisParser', 'CONNECTION_POOL_CLASS': 'redis.BlockingConnectionPool', 'CONNECTION_POOL_CLASS_KWARGS': {'max_connections': 50, 'timeout': 20}, 'MAX_CONNECTIONS': 1000, 'PICKLE_VERSION': -1}}}
143CACHETASK_TIME_LIMIT = 3600
144CACHE_MIDDLEWARE_ALIAS = 'default'
145CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
146CACHE_MIDDLEWARE_SECONDS = 600
147CELERYD_HIJACK_ROOT_LOGGER = False
148CELERY_ALWAYS_EAGER = False
149CELERY_BROKER_URL = 'redis://localhost:6379/3'
150CELERY_DEFAULT_QUEUE = 'qa'
151CELERY_TIMEZONE = 'Europe/Moscow'
152CHANNELS_BROKER_HOST = 'localhost'
153CHANNELS_BROKER_PORT = 6379
154CHANNELS_BROKER_PREFIX = 'qa_django_channels_namespace'
155CHANNEL_LAYERS = {'default': {'BACKEND': 'channels_redis.core.RedisChannelLayer', 'CONFIG': {'hosts': [('localhost', 6379)], 'prefix': 'qa_django_channels_namespace'}}}
156CONSTANCE_BACKEND = 'constance.backends.database.DatabaseBackend'
157CONSTANCE_CONFIG = {'KANNEL_URL': ('', 'Kannel url'), 'KANNEL_USERNAME': ('', 'Kannel username'), 'KANNEL_PASSWORD': '********************', 'KANNEL_CALLBACK_URL': ('', 'Kannel callback url'), 'SEND_CODE_EVENT': ('', 'Confirmation code template')}
158CONSTANCE_CONFIG_FIELDSETS = {'Kannel': ('KANNEL_URL', 'KANNEL_USERNAME', 'KANNEL_PASSWORD', 'KANNEL_CALLBACK_URL'), 'Auth': ('SEND_CODE_EVENT',)}
159CONSTANCE_DATABASE_CACHE_BACKEND = 'default'
160CORS_ORIGIN_ALLOW_ALL = True
161CSRF_COOKIE_AGE = 31449600
162CSRF_COOKIE_DOMAIN = None
163CSRF_COOKIE_HTTPONLY = False
164CSRF_COOKIE_NAME = 'csrftoken'
165CSRF_COOKIE_PATH = '/'
166CSRF_COOKIE_SECURE = False
167CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
168CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
169CSRF_TRUSTED_ORIGINS = []
170CSRF_USE_SESSIONS = False
171DATABASES = {'default': {'NAME': 'qa', 'USER': 'qa', 'PASSWORD': '********************', 'HOST': '127.0.0.1', 'PORT': '', 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'OPTIONS': {}, 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None}}}
172DATABASE_ROUTERS = []
173DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440
174DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
175DATETIME_FORMAT = 'N j, Y, P'
176DATETIME_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']
177DATE_FORMAT = 'N j, Y'
178DATE_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']
179DEBUG = True
180DEBUG_PROPAGATE_EXCEPTIONS = False
181DECIMAL_SEPARATOR = '.'
182DEFAULT_CHARSET = 'utf-8'
183DEFAULT_CONTENT_TYPE = 'text/html'
184DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
185DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
186DEFAULT_FROM_EMAIL = 'webmaster@localhost'
187DEFAULT_INDEX_TABLESPACE = ''
188DEFAULT_TABLESPACE = ''
189DISALLOWED_USER_AGENTS = []
190EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
191EMAIL_HOST = 'localhost'
192EMAIL_HOST_PASSWORD = '********************'
193EMAIL_HOST_USER = ''
194EMAIL_PORT = 25
195EMAIL_SSL_CERTFILE = None
196EMAIL_SSL_KEYFILE = '********************'
197EMAIL_SUBJECT_PREFIX = '[Django] '
198EMAIL_TIMEOUT = 900
199EMAIL_USE_LOCALTIME = False
200EMAIL_USE_SSL = False
201EMAIL_USE_TLS = False
202FILE_CHARSET = 'utf-8'
203FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
204FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
205FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
206FILE_UPLOAD_PERMISSIONS = None
207FILE_UPLOAD_TEMP_DIR = None
208FIRST_DAY_OF_WEEK = 0
209FIXTURE_DIRS = []
210FORCE_SCRIPT_NAME = None
211FORMAT_MODULE_PATH = None
212FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'
213IGNORABLE_404_URLS = []
214INSTALLED_APPS = ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'channels', 'rest_framework', 'rest_framework.authtoken', 'rest_auth', 'corsheaders', 'raven.contrib.django.raven_compat', 'answers', 'batches', 'conf', 'catalog', 'common', 'companies', 'customers', 'mail', 'sms', 'outlets', 'promotions', 'sales', 'segments', 'drf_yasg', 'constance', 'constance.backends.database']
215INTERNAL_IPS = []
216LANGUAGES = [('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'), ('kab', 'Kabyle'), ('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')]
217LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur']
218LANGUAGE_CODE = 'ru'
219LANGUAGE_COOKIE_AGE = None
220LANGUAGE_COOKIE_DOMAIN = None
221LANGUAGE_COOKIE_NAME = 'django_language'
222LANGUAGE_COOKIE_PATH = '/'
223LOCALE_PATHS = []
224LOGGING = {}
225LOGGING_CONFIG = 'logging.config.dictConfig'
226LOGIN_REDIRECT_URL = '/accounts/profile/'
227LOGIN_URL = '/accounts/login/'
228LOGOUT_REDIRECT_URL = None
229MANAGERS = []
230MEDIA_ROOT = '/home/vhost/qa/media'
231MEDIA_URL = '/media/'
232MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
233MIDDLEWARE = ['raven.contrib.django.middleware.DjangoRestFrameworkCompatMiddleware', 'raven.contrib.django.middleware.SentryMiddleware', 'django.middleware.security.SecurityMiddleware', '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']
234MIGRATION_MODULES = {}
235MONTH_DAY_FORMAT = 'F j'
236NUMBER_GROUPING = 0
237PASSWORD_HASHERS = '********************'
238PASSWORD_RESET_TIMEOUT_DAYS = '********************'
239PHONE_TIMEOUT = 900
240PREPEND_WWW = False
241PROFILE = False
242RAVEN_CONFIG = {'dsn': 'https://1d36dc5dc8f74398b320dc0e5db45236:5f52990c85974df0be90829efb58644c@sentry.qantor.ru/16'}
243REST_AUTH_SERIALIZERS = {'USER_DETAILS_SERIALIZER': 'common.serializers.UserDetailSerializer'}
244REST_AUTH_TOKEN_MODEL = '********************'
245REST_FRAMEWORK = {'DEFAULT_AUTHENTICATION_CLASSES': ('common.authentication.TokenAuthentication',), 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated',), 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend', 'rest_framework.filters.OrderingFilter'), 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination'}
246ROOT_URLCONF = 'conf.urls'
247SECRET_KEY = '********************'
248SECURE_BROWSER_XSS_FILTER = False
249SECURE_CONTENT_TYPE_NOSNIFF = False
250SECURE_HSTS_INCLUDE_SUBDOMAINS = False
251SECURE_HSTS_PRELOAD = False
252SECURE_HSTS_SECONDS = 0
253SECURE_PROXY_SSL_HEADER = "('HTTP_X_FORWARDED_PROTOCOL', 'https')"
254SECURE_REDIRECT_EXEMPT = []
255SECURE_SSL_HOST = None
256SECURE_SSL_REDIRECT = False
257SEGMENTS_CACHE_REDIS = {'host': '127.0.0.1', 'port': 6379, 'db': 1}
258SERVER_EMAIL = 'root@localhost'
259SESSION_CACHE_ALIAS = 'default'
260SESSION_COOKIE_AGE = 1209600
261SESSION_COOKIE_DOMAIN = None
262SESSION_COOKIE_HTTPONLY = True
263SESSION_COOKIE_NAME = 'sessionid'
264SESSION_COOKIE_PATH = '/'
265SESSION_COOKIE_SECURE = False
266SESSION_ENGINE = 'django.contrib.sessions.backends.db'
267SESSION_EXPIRE_AT_BROWSER_CLOSE = False
268SESSION_FILE_PATH = None
269SESSION_SAVE_EVERY_REQUEST = False
270SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
271SETTINGS_MODULE = 'conf.settings'
272SHORT_DATETIME_FORMAT = 'm/d/Y P'
273SHORT_DATE_FORMAT = 'm/d/Y'
274SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
275SILENCED_SYSTEM_CHECKS = []
276STATICFILES_DIRS = []
277STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
278STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
279STATIC_ROOT = '/home/vhost/qa/static'
280STATIC_URL = '/static/'
281TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], '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']}}, {'BACKEND': 'django.template.backends.jinja2.Jinja2', 'APP_DIRS': True}]
282TEST_NON_SERIALIZED_APPS = []
283TEST_RUNNER = 'django.test.runner.DiscoverRunner'
284THOUSAND_SEPARATOR = ','
285TIME_FORMAT = 'P'
286TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
287TIME_ZONE = 'Europe/Moscow'
288TOKEN_CACHE_EXPIRING = '********************'
289TOKEN_EXPIRING_DAYS = '********************'
290USE_ETAGS = False
291USE_I18N = True
292USE_L10N = True
293USE_THOUSAND_SEPARATOR = False
294USE_TZ = True
295USE_X_FORWARDED_HOST = False
296USE_X_FORWARDED_PORT = False
297WSGI_APPLICATION = 'conf.wsgi.application'
298X_FRAME_OPTIONS = 'SAMEORIGIN'
299YEAR_MONTH_FORMAT = 'F Y'
300ZBX_SMS_TIMEOUT = 300
301ZBX_SMS_TIMEOUT_SHIFT = 15
302
303
304You're seeing this error because you have DEBUG = True in your
305Django settings file. Change that to False, and Django will
306display a standard page generated by the handler for this status code.