· 6 years ago · May 22, 2019, 02:10 PM
1AttributeError at /api/user
2'NoneType' object has no attribute 'lower'
3
4Request Method: GET
5Request URL: http://polydon-gdeprozrak-api-dev.gdeprozrak.teamcsrv.com/api/user
6Django Version: 2.1.5
7Python Executable: /usr/local/lib/pyenv/versions/3.6.8/bin/python3.6
8Python Version: 3.6.8
9Python Path: ['/app', '/usr/local/lib/pyenv/versions/3.6.8/bin', '/usr/local/lib/pyenv/versions/3.6.8/lib/python36.zip', '/usr/local/lib/pyenv/versions/3.6.8/lib/python3.6', '/usr/local/lib/pyenv/versions/3.6.8/lib/python3.6/lib-dynload', '/usr/local/lib/pyenv/versions/3.6.8/lib/python3.6/site-packages', '/app']
10Server time: Ср, 22 Май 2019 14:05:38 +0000
11Installed Applications:
12['django.contrib.admin',
13 'django.contrib.auth',
14 'django.contrib.sites',
15 'django.contrib.staticfiles',
16 'django.contrib.contenttypes',
17 'django.contrib.sessions',
18 'rest_framework',
19 'allauth',
20 'allauth.account',
21 'allauth.socialaccount',
22 'allauth.socialaccount.providers.google',
23 'allauth.socialaccount.providers.facebook',
24 'allauth.socialaccount.providers.vk',
25 'rest_auth.registration',
26 'gdeprozrak_api.apps.GdeprozrakApiConfig']
27Installed Middleware:
28['gdeprozrak_api.middleware.CORSMiddleware',
29 'gdeprozrak_api.middleware.GeoserverCacheAuthMiddleware',
30 'django.middleware.security.SecurityMiddleware',
31 'django.contrib.sessions.middleware.SessionMiddleware',
32 'django.middleware.locale.LocaleMiddleware',
33 'django.middleware.common.CommonMiddleware',
34 'django.contrib.messages.middleware.MessageMiddleware',
35 'django.contrib.auth.middleware.AuthenticationMiddleware',
36 'django.middleware.clickjacking.XFrameOptionsMiddleware',
37 'gdeprozrak_api.middleware.ErrorMiddleware']
38
39
40Traceback:
41
42File "/usr/local/lib/pyenv/versions/3.6.8/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
43 34. response = get_response(request)
44
45File "/usr/local/lib/pyenv/versions/3.6.8/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
46 126. response = self.process_exception_by_middleware(e, request)
47
48File "/usr/local/lib/pyenv/versions/3.6.8/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
49 124. response = wrapped_callback(request, *callback_args, **callback_kwargs)
50
51File "/usr/local/lib/pyenv/versions/3.6.8/lib/python3.6/site-packages/django/views/decorators/csrf.py" in wrapped_view
52 54. return view_func(*args, **kwargs)
53
54File "/usr/local/lib/pyenv/versions/3.6.8/lib/python3.6/site-packages/django/views/generic/base.py" in view
55 68. return self.dispatch(request, *args, **kwargs)
56
57File "/app/gdeprozrak_api/base/views.py" in dispatch
58 30. resp = super(BaseAPIView, self).dispatch(*args, **kwargs)
59
60File "/usr/local/lib/pyenv/versions/3.6.8/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
61 495. response = self.handle_exception(exc)
62
63File "/usr/local/lib/pyenv/versions/3.6.8/lib/python3.6/site-packages/rest_framework/views.py" in handle_exception
64 455. self.raise_uncaught_exception(exc)
65
66File "/usr/local/lib/pyenv/versions/3.6.8/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
67 492. response = handler(request, *args, **kwargs)
68
69File "/app/gdeprozrak_api/views/user.py" in get
70 52. return Response(serializer.data, status=status.HTTP_200_OK)
71
72File "/usr/local/lib/pyenv/versions/3.6.8/lib/python3.6/site-packages/rest_framework/serializers.py" in data
73 563. ret = super(Serializer, self).data
74
75File "/usr/local/lib/pyenv/versions/3.6.8/lib/python3.6/site-packages/rest_framework/serializers.py" in data
76 262. self._data = self.to_representation(self.instance)
77
78File "/app/gdeprozrak_api/serializers.py" in to_representation
79 276. instance.avatar = 'https://www.gravatar.com/avatar/%s?s=%s' % (hashlib.md5(instance.email.lower().encode('utf8')).hexdigest(), self.context['size'])
80
81Exception Type: AttributeError at /api/user
82Exception Value: 'NoneType' object has no attribute 'lower'
83Request information:
84USER: it.harder
85
86GET: No GET data
87
88POST: No POST data
89
90FILES: No FILES data
91
92COOKIES:
93sessionid = '5d5yzeebh3ze75276vr2g73x8qbposjd'
94
95META:
96HTTP_ACCEPT = 'application/json, text/plain, */*'
97HTTP_ACCEPT_ENCODING = 'br, gzip, deflate'
98HTTP_ACCEPT_LANGUAGE = 'ru'
99HTTP_AUTHORIZATION = 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoyOSwidXNlcm5hbWUiOiJpdC5oYXJkZXIiLCJleHAiOjE1NjEyMTIzMzgsImVtYWlsIjpudWxsLCJvcmlnX2lhdCI6MTU1ODUzMzkzOH0.q2LQhUquaihW57HctrYkdfs5z8UTRy5xgcCjfK2TrG4'
100HTTP_CONNECTION = 'close'
101HTTP_COOKIE = 'sessionid=5d5yzeebh3ze75276vr2g73x8qbposjd'
102HTTP_HOST = 'polydon-gdeprozrak-api-dev.gdeprozrak.teamcsrv.com'
103HTTP_USER_AGENT = 'hydronom/1 CFNetwork/978.0.7 Darwin/18.5.0'
104HTTP_X_FORWARDED_FOR = '10.132.0.13'
105HTTP_X_FORWARDED_HOST = 'polydon-gdeprozrak-api-dev.gdeprozrak.teamcsrv.com'
106HTTP_X_FORWARDED_PORT = '443'
107HTTP_X_FORWARDED_PROTO = 'https'
108HTTP_X_ORIGINAL_URI = '/api/user'
109HTTP_X_REAL_IP = '10.132.0.13'
110HTTP_X_SCHEME = 'https'
111PATH_INFO = '/api/user'
112QUERY_STRING = ''
113RAW_URI = '/api/user'
114REMOTE_ADDR = '10.56.139.4'
115REMOTE_PORT = '56542'
116REQUEST_METHOD = 'GET'
117SCRIPT_NAME = ''
118SERVER_NAME = '0.0.0.0'
119SERVER_PORT = '8080'
120SERVER_PROTOCOL = 'HTTP/1.1'
121SERVER_SOFTWARE = 'gunicorn/19.9.0'
122gunicorn.socket = <gevent._socket3.socket object, fd=11, family=2, type=2049, proto=0>
123wsgi.errors = <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f2d7d46d5f8>
124wsgi.file_wrapper = ''
125wsgi.input = <gunicorn.http.body.Body object at 0x7f2d7d46d208>
126wsgi.multiprocess = True
127wsgi.multithread = True
128wsgi.run_once = False
129wsgi.url_scheme = 'http'
130wsgi.version = '(1, 0)'
131
132Settings:
133Using settings module gdeprozrak_project.settings
134ABSOLUTE_URL_OVERRIDES = {}
135ACCOUNT_ADAPTER = 'gdeprozrak_auth.adapter.DefaultAccountAdapterCustom'
136ACCOUNT_AUTHENTICATION_METHOD = 'email'
137ACCOUNT_EMAIL_REQUIRED = True
138ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
139ACCOUNT_USERNAME_REQUIRED = False
140ADAPTER = 'gdeprozrak_auth.adapter.DefaultAccountAdapterCustom'
141ADMINS = []
142ALLOWED_HOSTS = ['polydon-gdeprozrak-api-dev.gdeprozrak.teamcsrv.com', 'polydon-gdeprozrak-dev-polydon-gdeprozrak-api']
143APPEND_SLASH = True
144AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend', 'allauth.account.auth_backends.AuthenticationBackend']
145AUTH_PASSWORD_VALIDATORS = '********************'
146AUTH_USER_MODEL = 'gdeprozrak_api.GdeprozrakUser'
147BASE_DIR = '/app'
148CACHES = {'default': {'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://h:5t9pTMJDFwMVyu6z@polydon-gdeprozrak-dev-redis-master:6379/0', 'KEY_PREFIX': '********************'}}
149CACHE_MIDDLEWARE_ALIAS = 'default'
150CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
151CACHE_MIDDLEWARE_SECONDS = 600
152CELERY_ACCEPT_CONTENT = ['json']
153CELERY_BROKER_URL = 'redis://h:5t9pTMJDFwMVyu6z@polydon-gdeprozrak-dev-redis-master:6379/0'
154CELERY_RESULT_BACKEND = 'redis://h:5t9pTMJDFwMVyu6z@polydon-gdeprozrak-dev-redis-master:6379/0'
155CELERY_TASK_SERIALIZER = 'json'
156CONFIRM_EMAIL_ON_GET = True
157CSRF_COOKIE_AGE = 31449600
158CSRF_COOKIE_DOMAIN = None
159CSRF_COOKIE_HTTPONLY = False
160CSRF_COOKIE_NAME = 'csrftoken'
161CSRF_COOKIE_PATH = '/'
162CSRF_COOKIE_SAMESITE = 'Lax'
163CSRF_COOKIE_SECURE = False
164CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
165CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
166CSRF_TRUSTED_ORIGINS = []
167CSRF_USE_SESSIONS = False
168DATABASES = {'default': {'ENGINE': 'django.contrib.gis.db.backends.postgis', 'NAME': 'gis', 'USER': 'postgis', 'PASSWORD': '********************', 'HOST': 'polydon-gdeprozrak-dev-polydon-gdeprozrak-postgis', 'PORT': 5432, 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'OPTIONS': {}, 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None}}}
169DATABASE_ROUTERS = []
170DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440
171DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
172DATETIME_FORMAT = 'N j, Y, P'
173DATETIME_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']
174DATE_FORMAT = 'N j, Y'
175DATE_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']
176DEBUG = True
177DEBUG_PROPAGATE_EXCEPTIONS = False
178DECIMAL_SEPARATOR = '.'
179DEFAULT_CHARSET = 'utf-8'
180DEFAULT_CONTENT_TYPE = 'text/html'
181DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
182DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
183DEFAULT_FROM_EMAIL = 'no-reply@gdeprozrak.ru'
184DEFAULT_INDEX_TABLESPACE = ''
185DEFAULT_TABLESPACE = ''
186DISALLOWED_USER_AGENTS = []
187EMAIL_BACKEND = 'sendgrid_backend.SendgridBackend'
188EMAIL_HOST = 'localhost'
189EMAIL_HOST_PASSWORD = '********************'
190EMAIL_HOST_USER = ''
191EMAIL_PORT = 25
192EMAIL_SSL_CERTFILE = None
193EMAIL_SSL_KEYFILE = '********************'
194EMAIL_SUBJECT_PREFIX = '[Django] '
195EMAIL_TIMEOUT = None
196EMAIL_USE_LOCALTIME = False
197EMAIL_USE_SSL = False
198EMAIL_USE_TLS = False
199ENV = 'dev'
200FILE_CHARSET = 'utf-8'
201FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
202FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
203FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
204FILE_UPLOAD_PERMISSIONS = None
205FILE_UPLOAD_TEMP_DIR = None
206FIRST_DAY_OF_WEEK = 0
207FIXTURE_DIRS = []
208FORCE_SCRIPT_NAME = None
209FORMAT_MODULE_PATH = None
210FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'
211IGNORABLE_404_URLS = []
212INSTALLED_APPS = ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.sites', 'django.contrib.staticfiles', 'django.contrib.contenttypes', 'django.contrib.sessions', 'rest_framework', 'allauth', 'allauth.account', 'allauth.socialaccount', 'allauth.socialaccount.providers.google', 'allauth.socialaccount.providers.facebook', 'allauth.socialaccount.providers.vk', 'rest_auth.registration', 'gdeprozrak_api.apps.GdeprozrakApiConfig']
213INTERNAL_IPS = []
214JWT_AUTH = {'JWT_EXPIRATION_DELTA': datetime.timedelta(31), 'JWT_ALLOW_REFRESH': True, 'JWT_AUTH_HEADER_PREFIX': 'Bearer'}
215LANGUAGES = [('en', 'ÐнглийÑкий'), ('ru', 'РуÑÑкий')]
216LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur']
217LANGUAGE_CODE = 'en-us'
218LANGUAGE_COOKIE_AGE = None
219LANGUAGE_COOKIE_DOMAIN = None
220LANGUAGE_COOKIE_NAME = 'django_language'
221LANGUAGE_COOKIE_PATH = '/'
222LOCALE_PATHS = []
223LOGGING = {'version': 1, 'disable_existing_loggers': False, 'handlers': {'console': {'class': 'logging.StreamHandler'}}, 'loggers': {'django': {'handlers': ['console'], 'level': 'DEBUG'}}}
224LOGGING_CONFIG = 'logging.config.dictConfig'
225LOGIN_REDIRECT_URL = '/accounts/profile/'
226LOGIN_URL = '/accounts/login/'
227LOGOUT_REDIRECT_URL = None
228MANAGERS = []
229MEDIA_ROOT = ''
230MEDIA_URL = ''
231MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
232MIDDLEWARE = ['gdeprozrak_api.middleware.CORSMiddleware', 'gdeprozrak_api.middleware.GeoserverCacheAuthMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'gdeprozrak_api.middleware.ErrorMiddleware']
233MIGRATION_MODULES = {}
234MONTH_DAY_FORMAT = 'F j'
235NUMBER_GROUPING = 0
236OLD_PASSWORD_FIELD_ENABLED = '********************'
237PASSWORD_HASHERS = '********************'
238PASSWORD_RESET_TIMEOUT_DAYS = '********************'
239PKG = <class 'config_pkg.PKG'>
240PREPEND_WWW = False
241REDIS_URL = 'redis://h:5t9pTMJDFwMVyu6z@polydon-gdeprozrak-dev-redis-master:6379/0'
242REST_AUTH_SERIALIZERS = {'PASSWORD_RESET_SERIALIZER': '********************', 'USER_DETAILS_SERIALIZER': 'gdeprozrak_auth.serializers.GdeprozrakUserDetailsSerializer'}
243REST_FRAMEWORK = {'DEFAULT_AUTHENTICATION_CLASSES': ['rest_framework_jwt.authentication.JSONWebTokenAuthentication']}
244REST_USE_JWT = True
245ROOT_URLCONF = 'gdeprozrak_project.urls'
246SECRET_KEY = '********************'
247SECURE_BROWSER_XSS_FILTER = False
248SECURE_CONTENT_TYPE_NOSNIFF = False
249SECURE_HSTS_INCLUDE_SUBDOMAINS = False
250SECURE_HSTS_PRELOAD = False
251SECURE_HSTS_SECONDS = 0
252SECURE_PROXY_SSL_HEADER = None
253SECURE_REDIRECT_EXEMPT = []
254SECURE_SSL_HOST = None
255SECURE_SSL_REDIRECT = False
256SENDGRID_API_KEY = '********************'
257SENDGRID_SANDBOX_MODE_IN_DEBUG = False
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_SAMESITE = 'Lax'
266SESSION_COOKIE_SECURE = False
267SESSION_ENGINE = 'django.contrib.sessions.backends.db'
268SESSION_EXPIRE_AT_BROWSER_CLOSE = False
269SESSION_FILE_PATH = None
270SESSION_SAVE_EVERY_REQUEST = False
271SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
272SETTINGS_MODULE = 'gdeprozrak_project.settings'
273SHORT_DATETIME_FORMAT = 'm/d/Y P'
274SHORT_DATE_FORMAT = 'm/d/Y'
275SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
276SILENCED_SYSTEM_CHECKS = []
277SITE_ID = 1
278SRV = 'gdeprozrak'
279STATICFILES_DIRS = []
280STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
281STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
282STATIC_ROOT = None
283STATIC_URL = '/static/'
284TEMPLATES = [{'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']}}]
285TEST_NON_SERIALIZED_APPS = []
286TEST_RUNNER = 'django.test.runner.DiscoverRunner'
287THOUSAND_SEPARATOR = ','
288TIME_FORMAT = 'P'
289TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
290TIME_ZONE = 'UTC'
291URL_FRONT = 'https://polydon-gdeprozrak-web-dev.gdeprozrak.teamcsrv.com/'
292USE_I18N = True
293USE_L10N = True
294USE_THOUSAND_SEPARATOR = False
295USE_TZ = True
296USE_X_FORWARDED_HOST = False
297USE_X_FORWARDED_PORT = False
298VERSION = '0.7.23'
299WSGI_APPLICATION = 'gdeprozrak_project.wsgi.application'
300X_FRAME_OPTIONS = 'SAMEORIGIN'
301YEAR_MONTH_FORMAT = 'F Y'
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.