· 8 years ago · May 20, 2017, 09:08 PM
1AttributeError at /api/restaurant-full/16/
2'NoneType' object has no attribute 'get'
3
4Request Method: PUT
5Request URL: http://51.255.197.109:8000/api/restaurant-full/16/
6Django Version: 1.10.5
7Python Executable: /usr/local/bin/python3.5
8Python Version: 3.5.3
9Python Path: ['/project', '/usr/local/bin', '/usr/local/lib/python35.zip', '/usr/local/lib/python3.5', '/usr/local/lib/python3.5/plat-linux', '/usr/local/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/site-packages']
10Server time: So, 20 Maj 2017 23:05:55 +0200
11Installed Applications:
12('django.contrib.admin',
13 'django.contrib.auth',
14 'django.contrib.contenttypes',
15 'django.contrib.messages',
16 'django.contrib.staticfiles',
17 'django.contrib.gis',
18 'django.contrib.postgres',
19 'django.contrib.sessions',
20 'django_extensions',
21 'oauth2_provider',
22 'rest_framework',
23 'rest_framework_gis',
24 'rest_framework_swagger',
25 'django_filters',
26 'mapwidgets',
27 'corsheaders',
28 'nested_admin',
29 'sorl.thumbnail',
30 'authorization',
31 'restaurant',
32 'debug_toolbar')
33Installed Middleware:
34('debug_toolbar.middleware.DebugToolbarMiddleware',
35 'django.contrib.sessions.middleware.SessionMiddleware',
36 'base.middleware.TimezoneMiddleware',
37 'django.middleware.common.CommonMiddleware',
38 'corsheaders.middleware.CorsMiddleware',
39 'django.middleware.csrf.CsrfViewMiddleware',
40 'django.contrib.auth.middleware.AuthenticationMiddleware',
41 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
42 'oauth2_provider.middleware.OAuth2TokenMiddleware',
43 'django.contrib.messages.middleware.MessageMiddleware',
44 'django.middleware.clickjacking.XFrameOptionsMiddleware',
45 'django.middleware.security.SecurityMiddleware')
46
47
48Traceback:
49
50File "/usr/local/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
51 39. response = get_response(request)
52
53File "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py" in _legacy_get_response
54 249. response = self._get_response(request)
55
56File "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
57 187. response = self.process_exception_by_middleware(e, request)
58
59File "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
60 185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
61
62File "/usr/local/lib/python3.5/site-packages/django/views/decorators/csrf.py" in wrapped_view
63 58. return view_func(*args, **kwargs)
64
65File "/usr/local/lib/python3.5/site-packages/rest_framework/viewsets.py" in view
66 83. return self.dispatch(request, *args, **kwargs)
67
68File "/usr/local/lib/python3.5/site-packages/rest_framework/views.py" in dispatch
69 483. response = self.handle_exception(exc)
70
71File "/usr/local/lib/python3.5/site-packages/rest_framework/views.py" in handle_exception
72 443. self.raise_uncaught_exception(exc)
73
74File "/usr/local/lib/python3.5/site-packages/rest_framework/views.py" in dispatch
75 480. response = handler(request, *args, **kwargs)
76
77File "/usr/local/lib/python3.5/site-packages/rest_framework/mixins.py" in update
78 70. self.perform_update(serializer)
79
80File "/usr/local/lib/python3.5/site-packages/rest_framework/mixins.py" in perform_update
81 80. serializer.save()
82
83File "/usr/local/lib/python3.5/site-packages/rest_framework/serializers.py" in save
84 209. self.instance = self.update(self.instance, validated_data)
85
86File "/project/restaurant/serializers.py" in update
87 123. country, created = models.Country.objects.get_or_create(name=validated_data.get('country').get('name'))
88
89Exception Type: AttributeError at /api/restaurant-full/16/
90Exception Value: 'NoneType' object has no attribute 'get'
91Request information:
92USER: t4@t4.t4
93
94GET: No GET data
95
96POST: No POST data
97
98FILES: No FILES data
99
100COOKIES: No cookie data
101
102META:
103CONTENT_LENGTH = '477'
104CONTENT_TYPE = 'application/json'
105HTTP_ACCEPT = 'application/json'
106HTTP_ACCEPT_ENCODING = 'gzip, deflate, sdch'
107HTTP_ACCEPT_LANGUAGE = 'pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4'
108HTTP_AUTHORIZATION = 'Bearer W0iApSKP2e9q2HboJQCPmpJ0nTolBD'
109HTTP_CONNECTION = 'close'
110HTTP_HOST = '51.255.197.109:8000'
111HTTP_ORIGIN = 'http://localhost:3000'
112HTTP_REFERER = 'http://localhost:3000/'
113HTTP_USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36'
114HTTP_X_FORWARDED_FOR = '176.142.74.54'
115PATH_INFO = '/api/restaurant-full/16/'
116QUERY_STRING = ''
117RAW_URI = '/api/restaurant-full/16/'
118REMOTE_ADDR = '172.18.0.5'
119REMOTE_PORT = '38490'
120REQUEST_METHOD = 'PUT'
121SCRIPT_NAME = ''
122SERVER_NAME = '0.0.0.0'
123SERVER_PORT = '80'
124SERVER_PROTOCOL = 'HTTP/1.0'
125SERVER_SOFTWARE = 'gunicorn/19.6.0'
126gunicorn.socket = <socket.socket fd=10, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('172.18.0.3', 80), raddr=('172.18.0.5', 38490)>
127wsgi.errors = <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f83478e0e10>
128wsgi.file_wrapper = ''
129wsgi.input = <gunicorn.http.body.Body object at 0x7f83478e00b8>
130wsgi.multiprocess = True
131wsgi.multithread = False
132wsgi.run_once = False
133wsgi.url_scheme = 'http'
134wsgi.version =
135
136Settings:
137Using settings module siteat.settings.prod
138ABSOLUTE_URL_OVERRIDES = {}
139ADMINS =
140ALLOWED_HOSTS = ['*']
141APPEND_SLASH = True
142AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
143AUTH_PASSWORD_VALIDATORS = '********************'
144AUTH_USER_MODEL = 'auth.User'
145BASE_DIR = '/project'
146CACHES = {'default': {'BACKEND': 'redis_cache.RedisCache', 'OPTIONS': {'SOCKET_TIMEOUT': 5, 'SERIALIZER_CLASS': 'base.cache_serializers.UJSONSerializer', 'DB': 1, 'PARSER_CLASS': 'redis.connection.HiredisParser', 'SOCKET_CONNECT_TIMEOUT': 5}, 'LOCATION': 'cache:6379'}}
147CACHE_MIDDLEWARE_ALIAS = 'default'
148CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
149CACHE_MIDDLEWARE_SECONDS = 600
150CORS_ORIGIN_ALLOW_ALL = True
151CORS_ORIGIN_WHITELIST =
152CSRF_COOKIE_AGE = 31449600
153CSRF_COOKIE_DOMAIN = None
154CSRF_COOKIE_HTTPONLY = False
155CSRF_COOKIE_NAME = 'csrftoken'
156CSRF_COOKIE_PATH = '/'
157CSRF_COOKIE_SECURE = False
158CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
159CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
160CSRF_TRUSTED_ORIGINS = []
161DATABASES = {'default': {'CONN_MAX_AGE': 0, 'PASSWORD': '********************', 'USER': 'postgres', 'PORT': 5432, 'OPTIONS': {}, 'NAME': 'postgres', 'TIME_ZONE': None, 'ATOMIC_REQUESTS': False, 'ENGINE': 'django.contrib.gis.db.backends.postgis', 'AUTOCOMMIT': True, 'HOST': 'db', 'TEST': {'CHARSET': None, 'MIRROR': None, 'COLLATION': None, 'NAME': None}}}
162DATABASE_ROUTERS = []
163DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440
164DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
165DATETIME_FORMAT = 'N j, Y, P'
166DATETIME_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']
167DATE_FORMAT = 'N j, Y'
168DATE_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']
169DEBUG = True
170DEBUG_PROPAGATE_EXCEPTIONS = False
171DECIMAL_SEPARATOR = '.'
172DEFAULT_CHARSET = 'utf-8'
173DEFAULT_CONTENT_TYPE = 'text/html'
174DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
175DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
176DEFAULT_FROM_EMAIL = 'noreply@findsitandeat.com'
177DEFAULT_INDEX_TABLESPACE = ''
178DEFAULT_TABLESPACE = ''
179DISALLOWED_USER_AGENTS = []
180EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
181EMAIL_HOST = 'smtp.gmail.com'
182EMAIL_HOST_PASSWORD = '********************'
183EMAIL_HOST_USER = 'noreply@findsitandeat.com'
184EMAIL_PORT = 587
185EMAIL_SSL_CERTFILE = None
186EMAIL_SSL_KEYFILE = '********************'
187EMAIL_SUBJECT_PREFIX = '[Django] '
188EMAIL_TIMEOUT = None
189EMAIL_USE_SSL = False
190EMAIL_USE_TLS = True
191FILE_CHARSET = 'utf-8'
192FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
193FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
194FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
195FILE_UPLOAD_PERMISSIONS = None
196FILE_UPLOAD_TEMP_DIR = None
197FIRST_DAY_OF_WEEK = 0
198FIXTURE_DIRS = []
199FORCE_SCRIPT_NAME = None
200FORMAT_MODULE_PATH = None
201IGNORABLE_404_URLS = []
202INSTALLED_APPS =
203INTERNAL_IPS = []
204LANGUAGES = [('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')]
205LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur']
206LANGUAGE_CODE = 'pl'
207LANGUAGE_COOKIE_AGE = None
208LANGUAGE_COOKIE_DOMAIN = None
209LANGUAGE_COOKIE_NAME = 'django_language'
210LANGUAGE_COOKIE_PATH = '/'
211LOCALE_PATHS = []
212LOGGING = {'handlers': {'mail_admins': {'class': 'django.utils.log.AdminEmailHandler', 'level': 'ERROR', 'filters': ['require_debug_false']}, 'console': {'class': 'logging.StreamHandler', 'level': 'INFO', 'filters': ['require_debug_true']}}, 'filters': {'require_debug_true': {'()': 'django.utils.log.RequireDebugTrue'}, 'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}}, 'loggers': {'django.request': {'propagate': True, 'handlers': ['mail_admins'], 'level': 'ERROR'}}, 'version': 1, 'disable_existing_loggers': False}
213LOGGING_CONFIG = 'logging.config.dictConfig'
214LOGIN_REDIRECT_URL = '/accounts/profile/'
215LOGIN_URL = '/accounts/login/'
216LOGOUT_REDIRECT_URL = None
217MANAGERS = []
218MAP_WIDGETS = {'GooglePointFieldWidget': (('zoom', 15), ('mapCenterLocationName', 'warsaw')), 'GOOGLE_MAP_API_KEY': '********************'}
219MEDIA_ROOT = '/project/media'
220MEDIA_URL = '/media/'
221MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
222MIDDLEWARE = None
223MIDDLEWARE_CLASSES =
224MIGRATION_MODULES = {}
225MONTH_DAY_FORMAT = 'F j'
226NOTEBOOK_ARGUMENTS = ['--ip=0.0.0.0', '--port=9999', '--ext=django_extensions.management.notebook_extension']
227NUMBER_GROUPING = 0
228OAUTH2_PROVIDER = {'SCOPES': {'read': 'Read scope', 'groups': 'Access to your groups', 'write': 'Write scope'}}
229ORDERING_PARAM = 'o'
230PASSWORD_HASHERS = '********************'
231PASSWORD_RESET_TIMEOUT_DAYS = '********************'
232PREPEND_WWW = False
233REST_FRAMEWORK = {'PAGE_SIZE': 10, 'DEFAULT_FILTER_BACKENDS': ('rest_framework.filters.DjangoFilterBackend',), 'DEFAULT_RENDERER_CLASSES': ('base.renderers.UJSONRenderer', 'rest_framework.renderers.BrowsableAPIRenderer'), 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated', 'rest_framework.permissions.IsAdminUser'), 'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.SessionAuthentication', 'rest_framework.authentication.BasicAuthentication', 'oauth2_provider.ext.rest_framework.OAuth2Authentication'), 'DEFAULT_PARSER_CLASSES': ('drf_ujson.parsers.UJSONParser', 'rest_framework.parsers.FormParser', 'rest_framework.parsers.MultiPartParser')}
234ROOT_URLCONF = 'siteat.urls'
235SECRET_KEY = '********************'
236SECURE_BROWSER_XSS_FILTER = False
237SECURE_CONTENT_TYPE_NOSNIFF = False
238SECURE_HSTS_INCLUDE_SUBDOMAINS = False
239SECURE_HSTS_SECONDS = 0
240SECURE_PROXY_SSL_HEADER = None
241SECURE_REDIRECT_EXEMPT = []
242SECURE_SSL_HOST = None
243SECURE_SSL_REDIRECT = False
244SERVER_EMAIL = 'noreply@findsitandeat.com'
245SESSION_CACHE_ALIAS = 'default'
246SESSION_COOKIE_AGE = 1209600
247SESSION_COOKIE_DOMAIN = None
248SESSION_COOKIE_HTTPONLY = True
249SESSION_COOKIE_NAME = 'sessionid'
250SESSION_COOKIE_PATH = '/'
251SESSION_COOKIE_SECURE = False
252SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
253SESSION_EXPIRE_AT_BROWSER_CLOSE = False
254SESSION_FILE_PATH = None
255SESSION_SAVE_EVERY_REQUEST = False
256SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
257SETTINGS_MODULE = 'siteat.settings.prod'
258SHORT_DATETIME_FORMAT = 'm/d/Y P'
259SHORT_DATE_FORMAT = 'm/d/Y'
260SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
261SILENCED_SYSTEM_CHECKS = []
262STATICFILES_DIRS = []
263STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
264STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
265STATIC_ROOT = '/project/static'
266STATIC_URL = '/static/'
267TEMPLATES = [{'DIRS': ['/project/templates'], 'BACKEND': 'django.template.backends.django.DjangoTemplates', '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']}, 'APP_DIRS': True}]
268TEST_NON_SERIALIZED_APPS = []
269TEST_RUNNER = 'django.test.runner.DiscoverRunner'
270THOUSAND_SEPARATOR = ','
271THUMBNAIL_ENGINE = 'restaurant.pil.Engine'
272TIME_FORMAT = 'P'
273TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
274TIME_ZONE = 'Europe/Warsaw'
275USE_ETAGS = False
276USE_I18N = True
277USE_L10N = True
278USE_THOUSAND_SEPARATOR = False
279USE_TZ = True
280USE_X_FORWARDED_HOST = False
281USE_X_FORWARDED_PORT = False
282WSGI_APPLICATION = 'siteat.wsgi.application'
283X_FRAME_OPTIONS = 'SAMEORIGIN'
284YEAR_MONTH_FORMAT = 'F Y'
285
286
287You're seeing this error because you have DEBUG = True in your
288Django settings file. Change that to False, and Django will
289display a standard page generated by the handler for this status code.