· 6 years ago · Aug 08, 2019, 04:36 AM
1TypeError at /api/rentals/2277/estimated_balance/
2unsupported operand type(s) for +=: 'float' and 'RentalRate'
3
4Request Method: GET
5Request URL: https://ops4-backend-staging.herokuapp.com/api/rentals/2277/estimated_balance/
6Django Version: 2.2.4
7Python Executable: /app/.heroku/python/bin/python
8Python Version: 3.6.8
9Python Path: ['/app/.heroku/python/bin', '/app/.heroku/python/lib/python3.6/site-packages/newrelic/bootstrap', '/app', '/app/.heroku/python/lib/python36.zip', '/app/.heroku/python/lib/python3.6', '/app/.heroku/python/lib/python3.6/lib-dynload', '/app/.heroku/python/lib/python3.6/site-packages', '/app']
10Server time: Thu, 8 Aug 2019 04:32:27 +0000
11Installed Applications:
12['authentication.apps.AuthenticationConfig',
13 'django.contrib.admin',
14 'django.contrib.auth',
15 'django.contrib.contenttypes',
16 'django.contrib.sessions',
17 'django.contrib.messages',
18 'django.contrib.staticfiles',
19 'django.contrib.gis',
20 'rest_framework',
21 'rest_framework.authtoken',
22 'rest_auth',
23 'rest_framework_jwt',
24 'debug_toolbar',
25 'corsheaders',
26 'raven.contrib.django.raven_compat',
27 'algoliasearch_django',
28 'django_celery_results',
29 'django_celery_beat',
30 'storages',
31 'django_filters',
32 'core',
33 'documents.apps.DocumentsConfig',
34 'drivers.apps.DriversConfig',
35 'invoice_generation.apps.InvoiceGenerationConfig',
36 'maintenance',
37 'payments.apps.PaymentConfig',
38 'rentals.apps.RentalsConfig',
39 'reports.apps.ReportsConfig',
40 'elastic.apps.ElasticConfig',
41 'tickets',
42 'vehicles.apps.VehiclesConfig',
43 'samson.apps.SamsonConfig',
44 'klembot',
45 'alerts',
46 'notifications',
47 'aircall',
48 'health_check',
49 'health_check.db',
50 'health_check.contrib.celery',
51 'health_check.contrib.s3boto3_storage',
52 'elasticapm.contrib.django']
53Installed Middleware:
54['raven.contrib.django.middleware.DjangoRestFrameworkCompatMiddleware',
55 'raven.contrib.django.middleware.SentryMiddleware',
56 'elasticapm.contrib.django.middleware.TracingMiddleware',
57 'django.middleware.security.SecurityMiddleware',
58 'whitenoise.middleware.WhiteNoiseMiddleware',
59 'raven.contrib.django.raven_compat.middleware.SentryResponseErrorIdMiddleware',
60 'django.middleware.locale.LocaleMiddleware',
61 'corsheaders.middleware.CorsMiddleware',
62 'debug_toolbar.middleware.DebugToolbarMiddleware',
63 'django.contrib.sessions.middleware.SessionMiddleware',
64 'django.middleware.common.CommonMiddleware',
65 'django.middleware.csrf.CsrfViewMiddleware',
66 'django.contrib.auth.middleware.AuthenticationMiddleware',
67 'django.contrib.messages.middleware.MessageMiddleware',
68 'django.middleware.clickjacking.XFrameOptionsMiddleware']
69
70
71Traceback:
72
73File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
74 34. response = get_response(request)
75
76File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
77 115. response = self.process_exception_by_middleware(e, request)
78
79File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
80 113. response = wrapped_callback(request, *callback_args, **callback_kwargs)
81
82File "/app/.heroku/python/lib/python3.6/site-packages/newrelic/hooks/framework_django.py" in wrapper
83 544. return wrapped(*args, **kwargs)
84
85File "/app/.heroku/python/lib/python3.6/site-packages/django/views/decorators/csrf.py" in wrapped_view
86 54. return view_func(*args, **kwargs)
87
88File "/app/.heroku/python/lib/python3.6/site-packages/django/views/generic/base.py" in view
89 71. return self.dispatch(request, *args, **kwargs)
90
91File "/app/.heroku/python/lib/python3.6/site-packages/newrelic/hooks/component_djangorestframework.py" in _nr_wrapper_APIView_dispatch_
92 46. return wrapped(*args, **kwargs)
93
94File "/app/.heroku/python/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
95 495. response = self.handle_exception(exc)
96
97File "/app/.heroku/python/lib/python3.6/site-packages/newrelic/hooks/component_djangorestframework.py" in _handle_exception_wrapper
98 53. return wrapped(*args, **kwargs)
99
100File "/app/.heroku/python/lib/python3.6/site-packages/rest_framework/views.py" in handle_exception
101 455. self.raise_uncaught_exception(exc)
102
103File "/app/.heroku/python/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
104 492. response = handler(request, *args, **kwargs)
105
106File "/app/rentals/views.py" in get
107 1375. estimated_amount = calculate_post_launch_balance(driver_id=driver.driver_id, rental_rate=rental_rate)
108
109File "/app/rentals/utils.py" in calculate_post_launch_balance
110 104. balance += rental_rate
111
112Exception Type: TypeError at /api/rentals/2277/estimated_balance/
113Exception Value: unsupported operand type(s) for +=: 'float' and 'RentalRate'
114Request information:
115USER: matej
116
117GET: No GET data
118
119POST: No POST data
120
121FILES: No FILES data
122
123COOKIES: No cookie data
124
125META:
126CONTENT_TYPE = 'application/json'
127HTTP_ACCEPT = 'application/json'
128HTTP_ACCEPT_ENCODING = 'gzip, deflate, br'
129HTTP_ACCEPT_LANGUAGE = 'en-GB,en-US;q=0.9,en;q=0.8'
130HTTP_AUTHORIZATION = 'JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoyLCJ1c2VybmFtZSI6Im1hdGVqIiwiZXhwIjoxNTY1MjY0NzM1LCJlbWFpbCI6ImhhaG4ubWF0ZWpAZ21haWwuY29tIiwib3JpZ19pYXQiOjE1NjUxNzgzMzUsImZpcnN0X25hbWUiOiJNYXRlaiIsImxhc3RfbmFtZSI6IkhhaG4iLCJpc19zdGFmZiI6dHJ1ZSwiaXNfc3VwZXJ1c2VyIjp0cnVlLCJpc19tYWludGVuYW5jZSI6ZmFsc2UsInBpbiI6IjU1NTUifQ.eCeOwnnnJ5vROJaxjzXimzWiVdCcG8Wz2I-JfXgpwco'
131HTTP_CONNECTION = 'close'
132HTTP_CONNECT_TIME = '1'
133HTTP_HOST = 'ops4-backend-staging.herokuapp.com'
134HTTP_ORIGIN = 'http://localhost:3000'
135HTTP_REFERER = 'http://localhost:3000/'
136HTTP_SEC_FETCH_MODE = 'cors'
137HTTP_SEC_FETCH_SITE = 'cross-site'
138HTTP_TOTAL_ROUTE_TIME = '0'
139HTTP_USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'
140HTTP_VIA = '1.1 vegur'
141HTTP_X_FORWARDED_FOR = '89.142.110.51'
142HTTP_X_FORWARDED_PORT = '443'
143HTTP_X_FORWARDED_PROTO = 'https'
144HTTP_X_REQUEST_ID = 'e769191d-db41-484e-a6d9-5cd0cc7dba8f'
145HTTP_X_REQUEST_START = '1565238745250'
146PATH_INFO = '/api/rentals/2277/estimated_balance/'
147QUERY_STRING = ''
148RAW_URI = '/api/rentals/2277/estimated_balance/'
149REMOTE_ADDR = '10.71.235.239'
150REMOTE_PORT = '27342'
151REQUEST_METHOD = 'GET'
152SCRIPT_NAME = ''
153SERVER_NAME = '0.0.0.0'
154SERVER_PORT = '50188'
155SERVER_PROTOCOL = 'HTTP/1.1'
156SERVER_SOFTWARE = 'gunicorn/19.8.1'
157gunicorn.socket = <socket.socket fd=16, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('172.19.32.94', 50188), raddr=('10.71.235.239', 27342)>
158wsgi.errors = <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f7f22c36b70>
159wsgi.file_wrapper = ''
160wsgi.input = <newrelic.api.web_transaction._WSGIInputWrapper object at 0x7f7f22c36048>
161wsgi.multiprocess = True
162wsgi.multithread = False
163wsgi.run_once = False
164wsgi.url_scheme = 'https'
165wsgi.version = '(1, 0)'
166
167Settings:
168Using settings module ops4_backend.settings
169ABSOLUTE_URL_OVERRIDES = {}
170ADMINS = []
171ALGOLIA = {'APPLICATION_ID': 'H7N8OPI3TN', 'API_KEY': '********************', 'SEARCH_API_KEY': '********************', 'INDEX_PREFIX': 'ops4', 'INDEX_SUFFIX': 'backend_dev', 'AUTO_INDEXING': False}
172ALLOWED_HOSTS = ['127.0.0.1', 'localhost:3000', 'localhost:8000', 'localhost', 'ops4-backend-production.herokuapp.com', 'ops4-backend-staging.herokuapp.com', 'ops4-dashboard.herokuapp.com', 'sally-short-url.herokuapp.com', 'ops4-backend-demo.herokuapp.com', '20caddc2.ngrok.io']
173API_TOKENS = '********************'
174APPEND_SLASH = True
175AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
176AUTH_PASSWORD_VALIDATORS = '********************'
177AUTH_USER_MODEL = 'authentication.SallyUser'
178AWS_ACCESS_KEY_ID = '********************'
179AWS_DYNAMO = {'ACCESS_KEY_ID': '********************', 'SECRET_ACCESS_KEY': '********************'}
180AWS_S3_CUSTOM_DOMAIN = None
181AWS_SECRET_ACCESS_KEY = '********************'
182AWS_STORAGE_BUCKET_NAME = 'ops4.5-staging-bucket'
183BACKGROUND_TASKS = {}
184BASE_DIR = '/app'
185CACHES = {'default': {'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://:nvUyDztpJMBwlG69Wh0y96SKANbXTUsK@redis-11551.c17.us-east-1-4.ec2.cloud.redislabs.com:11551', 'OPTIONS': {'CLIENT_CLASS': 'django_redis.client.DefaultClient'}}}
186CACHE_MIDDLEWARE_ALIAS = 'default'
187CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
188CACHE_MIDDLEWARE_SECONDS = 600
189CALAMP = {'USERNAME': 'DriveSally', 'PASSWORD': '********************', 'APP_TOKEN': '********************', 'HOST': 'https://connect.calamp.com', 'ACCOUNT_ID': '1587'}
190CELERY_ACCEPT_CONTENT = ['application/json']
191CELERY_BEAT_SCHEDULER = 'django_celery_beat.schedulers:DatabaseScheduler'
192CELERY_BROKER_HEARTBEAT = 0
193CELERY_BROKER_URL = 'amqp://kdvtqedb:VplYOt6FBCgxk1SrXuDrbfvXFH-9u4xX@skunk.rmq.cloudamqp.com/kdvtqedb'
194CELERY_ENABLE_UTC = True
195CELERY_RESULT_BACKEND = 'django-db'
196CELERY_RESULT_SERIALIZER = 'json'
197CELERY_TASK_CREATE_MISSING_QUEUES = True
198CELERY_TASK_SERIALIZER = 'json'
199CELERY_TIMEZONE = 'UTC'
200CORS_ALLOW_HEADERS = "('accept', 'accept-encoding', 'authorization', 'content-type', 'dnt', 'origin', 'user-agent', 'x-csrftoken', 'x-requested-with', 'apikey', 'sallyapikey', 'http_apikey', 'x-cards-apikey')"
201CORS_ORIGIN_ALLOW_ALL = True
202CSRF_COOKIE_AGE = 31449600
203CSRF_COOKIE_DOMAIN = None
204CSRF_COOKIE_HTTPONLY = False
205CSRF_COOKIE_NAME = 'csrftoken'
206CSRF_COOKIE_PATH = '/'
207CSRF_COOKIE_SAMESITE = 'Lax'
208CSRF_COOKIE_SECURE = False
209CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
210CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
211CSRF_TRUSTED_ORIGINS = []
212CSRF_USE_SESSIONS = False
213DATABASES = {'default': {'ENGINE': 'django.contrib.gis.db.backends.postgis', 'NAME': 'd1etoch6in7dc7', 'USER': 'u5cqgpstukqncm', 'PASSWORD': '********************', 'HOST': 'ec2-3-208-200-86.compute-1.amazonaws.com', 'PORT': 5432, 'CONN_MAX_AGE': 500, 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'OPTIONS': {}, 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None}}}
214DATABASE_ROUTERS = []
215DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440
216DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
217DATETIME_FORMAT = 'N j, Y, P'
218DATETIME_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']
219DATE_FORMAT = 'N j, Y'
220DATE_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']
221DEBUG = True
222DEBUG_PROPAGATE_EXCEPTIONS = False
223DECIMAL_SEPARATOR = '.'
224DEFAULT_CHARSET = 'utf-8'
225DEFAULT_CONTENT_TYPE = 'text/html'
226DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
227DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
228DEFAULT_FROM_EMAIL = 'join@drivesally.com'
229DEFAULT_INDEX_TABLESPACE = ''
230DEFAULT_TABLESPACE = ''
231DISALLOWED_USER_AGENTS = []
232DROPBOX = 'vlXgFTXkSUAAAAAAAAAAGIJAdEQBPLJJch2Arp8FwtVSxmUgMXyi1kfo3rGDKiQT'
233ELASTIC_APM = {'SERVICE_NAME': 'staging_poc', 'SECRET_TOKEN': '********************', 'SERVER_URL': 'https://abe51f291e194add85afaf7c985edddf.apm.us-east-1.aws.cloud.es.io:443', 'SERVER_TIMEOUT': '5s', 'DEBUG': 'True', 'DJANGO_TRANSACTION_NAME_FROM_ROUTE': True, 'CAPTURE_BODY': False, 'TRANSACTIONS_IGNORE_PATTERNS': ['POST vehicles.views.CalampAvlEventView', 'POST api/vehicles/calamp_event/avl/']}
234ELASTIC_LOGSTASH_ENV = 'staging'
235EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
236EMAIL_HOST = 'smtp.mailgun.org'
237EMAIL_HOST_PASSWORD = '********************'
238EMAIL_HOST_USER = 'postmaster@mailgun.drivesally.com'
239EMAIL_PORT = 587
240EMAIL_SSL_CERTFILE = None
241EMAIL_SSL_KEYFILE = '********************'
242EMAIL_SUBJECT_PREFIX = '[Django] '
243EMAIL_TIMEOUT = None
244EMAIL_USE_LOCALTIME = False
245EMAIL_USE_SSL = False
246EMAIL_USE_TLS = True
247FILE_CHARSET = 'utf-8'
248FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
249FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
250FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
251FILE_UPLOAD_PERMISSIONS = None
252FILE_UPLOAD_TEMP_DIR = None
253FIRST_DAY_OF_WEEK = 0
254FIXTURE_DIRS = []
255FORCE_SCRIPT_NAME = None
256FORMAT_MODULE_PATH = None
257FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'
258GDAL_LIBRARY_PATH = '/app/.heroku/vendor/lib/libgdal.so'
259GEOS_LIBRARY_PATH = '/app/.heroku/vendor/lib/libgeos_c.so'
260GOLDSTAR = {'USERNAME': '', 'PASSWORD': '********************'}
261GOOGLE = {'SERVICE_ACCOUNT_FILENAME': '', 'SPREADSHEET_ID': ''}
262IGNORABLE_404_URLS = []
263INSTALLED_APPS = ['authentication.apps.AuthenticationConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.gis', 'rest_framework', 'rest_framework.authtoken', 'rest_auth', 'rest_framework_jwt', 'debug_toolbar', 'corsheaders', 'raven.contrib.django.raven_compat', 'algoliasearch_django', 'django_celery_results', 'django_celery_beat', 'storages', 'django_filters', 'core', 'documents.apps.DocumentsConfig', 'drivers.apps.DriversConfig', 'invoice_generation.apps.InvoiceGenerationConfig', 'maintenance', 'payments.apps.PaymentConfig', 'rentals.apps.RentalsConfig', 'reports.apps.ReportsConfig', 'elastic.apps.ElasticConfig', 'tickets', 'vehicles.apps.VehiclesConfig', 'samson.apps.SamsonConfig', 'klembot', 'alerts', 'notifications', 'aircall', 'health_check', 'health_check.db', 'health_check.contrib.celery', 'health_check.contrib.s3boto3_storage', 'elasticapm.contrib.django']
264INTERNAL_IPS = ['localhost', '127.0.0.1', 'ops4-backend-production.herokuapp.com']
265JWT_AUTH = {'JWT_ALLOW_REFRESH': True, 'JWT_PAYLOAD_HANDLER': 'authentication.jwt_handler.jwt_payload_handler', 'JWT_VERIFY_EXPIRATION': True, 'JWT_EXPIRATION_DELTA': datetime.timedelta(1), 'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(7)}
266KUSTOMER = {'API_KEY': '********************'}
267LANGUAGES = [('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'), ('hy', 'Armenian'), ('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')]
268LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur']
269LANGUAGE_CODE = 'en-us'
270LANGUAGE_COOKIE_AGE = None
271LANGUAGE_COOKIE_DOMAIN = None
272LANGUAGE_COOKIE_NAME = 'django_language'
273LANGUAGE_COOKIE_PATH = '/'
274LOCALE_PATHS = []
275LOGGING = {'version': 1, 'disable_existing_loggers': True, 'root': {'level': 'WARNING', 'handlers': ['sentry']}, 'formatters': {'verbose': {'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'sentry': {'level': 'ERROR', 'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler', 'tags': {'custom-tag': 'x'}}, 'console': {'level': 'INFO', 'class': 'logging.StreamHandler', 'formatter': 'verbose'}, 'file': {'level': 'INFO', 'class': 'logging.FileHandler', 'filename': 'ops4_backend_elastic-staging.log'}}, 'loggers': {'django.db.backends': {'level': 'ERROR', 'handlers': ['console'], 'propagate': False}, 'raven': {'level': 'DEBUG', 'handlers': ['console'], 'propagate': False}, 'sentry.errors': {'level': 'DEBUG', 'handlers': ['console'], 'propagate': False}, 'elastic': {'handlers': ['console'], 'level': 'INFO', 'propagate': True}}}
276LOGGING_CONFIG = 'logging.config.dictConfig'
277LOGIN_REDIRECT_URL = '/accounts/profile/'
278LOGIN_URL = '/accounts/login/'
279LOGOUT_REDIRECT_URL = None
280MANAGERS = []
281MEDIA_ROOT = ''
282MEDIA_URL = ''
283MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
284MIDDLEWARE = ['raven.contrib.django.middleware.DjangoRestFrameworkCompatMiddleware', 'raven.contrib.django.middleware.SentryMiddleware', 'elasticapm.contrib.django.middleware.TracingMiddleware', 'django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', 'raven.contrib.django.raven_compat.middleware.SentryResponseErrorIdMiddleware', 'django.middleware.locale.LocaleMiddleware', 'corsheaders.middleware.CorsMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware', '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']
285MIGRATION = {'HOST': 'https://ops4-production.herokuapp.com', 'USERNAME': 'mitchell', 'PASSWORD': '********************', 'PRODUCTION': False}
286MIGRATION_MODULES = {}
287MONTH_DAY_FORMAT = 'F j'
288NUMBER_GROUPING = 0
289OLD_PASSWORD_FIELD_ENABLED = '********************'
290PASSWORD_HASHERS = '********************'
291PASSWORD_RESET_TIMEOUT_DAYS = '********************'
292PREPEND_WWW = False
293PRIVACY_POLICY_URL = 'https://privacy-staging.drivesally.com'
294PROJ4_LIBRARY_PATH = '/app/.heroku/vendor/lib/libproj.so'
295RAVEN_CONFIG = {'dsn': 'https://06c1a605217f4cedb7e6962fb6c68c4a:1da7b9388f964e93bf0b7aa2b7d77542@sentry.io/1234211'}
296REQUEST_DEFAULT_TIMEOUT = 15.0
297REST_AUTH_SERIALIZERS = {'PASSWORD_RESET_SERIALIZER': '********************'}
298REST_FRAMEWORK = {'UNICODE_JSON': True, 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination', 'PAGE_SIZE': 20, 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',), 'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework_jwt.authentication.JSONWebTokenAuthentication',), 'DEFAULT_PERMISSION_CLASSES': ['rest_framework.permissions.IsAuthenticated'], 'DEFAULT_RENDERER_CLASSES': ('rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.BrowsableAPIRenderer')}
299REST_USE_JWT = True
300ROOT_URLCONF = 'ops4_backend.urls'
301SALLY_LOCATIONS = {'SALLY_HQ': (40.7522791, -73.9419402)}
302SECRET_KEY = '********************'
303SECURE_BROWSER_XSS_FILTER = False
304SECURE_CONTENT_TYPE_NOSNIFF = False
305SECURE_HSTS_INCLUDE_SUBDOMAINS = False
306SECURE_HSTS_PRELOAD = False
307SECURE_HSTS_SECONDS = 0
308SECURE_PROXY_SSL_HEADER = None
309SECURE_REDIRECT_EXEMPT = []
310SECURE_SSL_HOST = None
311SECURE_SSL_REDIRECT = True
312SERVER_EMAIL = 'root@localhost'
313SESSION_CACHE_ALIAS = 'default'
314SESSION_COOKIE_AGE = 1209600
315SESSION_COOKIE_DOMAIN = None
316SESSION_COOKIE_HTTPONLY = True
317SESSION_COOKIE_NAME = 'sessionid'
318SESSION_COOKIE_PATH = '/'
319SESSION_COOKIE_SAMESITE = 'Lax'
320SESSION_COOKIE_SECURE = False
321SESSION_ENGINE = 'django.contrib.sessions.backends.db'
322SESSION_EXPIRE_AT_BROWSER_CLOSE = False
323SESSION_FILE_PATH = None
324SESSION_SAVE_EVERY_REQUEST = False
325SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
326SETTINGS_MODULE = 'ops4_backend.settings'
327SHORT_DATETIME_FORMAT = 'm/d/Y P'
328SHORT_DATE_FORMAT = 'm/d/Y'
329SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
330SILENCED_SYSTEM_CHECKS = []
331SLACK = {'CARDS': 'https://hooks.slack.com/services/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', 'PAYMENTS': 'https://hooks.slack.com/services/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', 'TURNOVER': 'https://hooks.slack.com/services/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', 'REPORTS': '', 'TICKETS': '', 'LEADS': ' https://hooks.slack.com/services/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', 'GEORGE_PAYMENTS': None, 'FLEX_LEADS': '', 'CALAMP': 'https://hooks.slack.com/services/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', 'MAINTENANCE_ALERTS': 'https://hooks.slack.com/services/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'}
332STATICFILES_DIRS = ['/app/static_folder/']
333STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
334STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
335STATIC_ROOT = '/app/static_media/'
336STATIC_URL = '/static/'
337STRIPE = {'API_KEY': '********************'}
338TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/app/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']}}]
339TEST_NON_SERIALIZED_APPS = []
340TEST_RUNNER = 'django.test.runner.DiscoverRunner'
341THOUSAND_SEPARATOR = ','
342TIME_FORMAT = 'P'
343TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
344TIME_ZONE = 'UTC'
345TWILIO = {'ACCOUNT_SID': 'todo', 'ACCOUNT_TOKEN': '********************', 'FROM_NUMBER': 'todo', 'MESSAGING_SERVICE_SID': 'todo'}
346USE_I18N = True
347USE_L10N = True
348USE_THOUSAND_SEPARATOR = False
349USE_TZ = True
350USE_X_FORWARDED_HOST = False
351USE_X_FORWARDED_PORT = False
352VEHICLE_TRACK_FIELDS = ['plate', 'dashcam_serial', 'calamp_device_id', 'spireon_serial', 'emissions_expiry', 'registration_expiry', 'fhv_license_expiry', 'owner', 'vin', 'vehicle_model', 'vehicle_makevehicle_year', 'state']
353VERISK_SFTP_HOST = ''
354VERISK_SFTP_PW = ''
355VERISK_SFTP_USER = ''
356WSGI_APPLICATION = 'ops4_backend.wsgi.application'
357X_FRAME_OPTIONS = 'SAMEORIGIN'
358YEAR_MONTH_FORMAT = 'F Y'
359
360
361You're seeing this error because you have DEBUG = True in your
362Django settings file. Change that to False, and Django will
363display a standard page generated by the handler for this status code.