expected string or bytes-like object
Request Method: | GET |
---|---|
Request URL: | https://flux-dealers-api.herokuapp.com/directory/dealers/G1092/ |
Django Version: | 2.2.28 |
Exception Type: | TypeError |
Exception Value: | expected string or bytes-like object |
Exception Location: | /app/.heroku/python/lib/python3.8/re.py in sub, line 210 |
Python Executable: | /app/.heroku/python/bin/python |
Python Version: | 3.8.18 |
Python Path: | ['/app/.heroku/python/bin', '/app', '/app/.heroku/python/lib/python38.zip', '/app/.heroku/python/lib/python3.8', '/app/.heroku/python/lib/python3.8/lib-dynload', '/app/.heroku/python/lib/python3.8/site-packages'] |
Server time: | Thu, 28 Mar 2024 13:17:29 +0000 |
/app/.heroku/python/lib/python3.8/site-packages/django/core/handlers/exception.py
in inner
This decorator is automatically applied to all middleware to ensure that
no middleware leaks an exception and that the next middleware in the stack
can rely on getting a response instead of an exception.
"""
@wraps(get_response)
def inner(request):
try:
response = get_response(request)…
except Exception as exc:
response = response_for_exception(request, exc)
return response
return inner
Variable | Value |
---|---|
exc | TypeError('expected string or bytes-like object') |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f5aafe07fd0>> |
request | <WSGIRequest: GET '/directory/dealers/G1092/'> |
/app/.heroku/python/lib/python3.8/site-packages/django/core/handlers/base.py
in _get_response
break
if response is None:
wrapped_callback = self.make_view_atomic(callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs)
except Exception as e:
response = self.process_exception_by_middleware(e, request)…
# Complain if the view returned None (a common error).
if response is None:
if isinstance(callback, types.FunctionType): # FBV
view_name = callback.__name__
else: # CBV
Variable | Value |
---|---|
callback | <function DealersDetailView at 0x7f5aaef60820> |
callback_args | () |
callback_kwargs | {'garage_agentref': 'G1092', 'type': 'dealers'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7f5aaf7859a0>> |
request | <WSGIRequest: GET '/directory/dealers/G1092/'> |
resolver | <URLResolver 'flux_dealer_api.urls' (None:None) '^/'> |
resolver_match | ResolverMatch(func=dealers.views.dealers.DealersDetailView, args=(), kwargs={'type': 'dealers', 'garage_agentref': 'G1092'}, url_name=view_dealers_detail, app_names=[], namespaces=[], route=^directory/(?P<type>(dealers|schools))/(?P<garage_agentref>([a-zA-Z])[\d]+)/$) |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f5aafe07fd0> |
wrapped_callback | <function DealersDetailView at 0x7f5aaef60820> |
/app/.heroku/python/lib/python3.8/site-packages/django/core/handlers/base.py
in _get_response
response = middleware_method(request, callback, callback_args, callback_kwargs)
if response:
break
if response is None:
wrapped_callback = self.make_view_atomic(callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs)…
except Exception as e:
response = self.process_exception_by_middleware(e, request)
# Complain if the view returned None (a common error).
if response is None:
if isinstance(callback, types.FunctionType): # FBV
Variable | Value |
---|---|
callback | <function DealersDetailView at 0x7f5aaef60820> |
callback_args | () |
callback_kwargs | {'garage_agentref': 'G1092', 'type': 'dealers'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7f5aaf7859a0>> |
request | <WSGIRequest: GET '/directory/dealers/G1092/'> |
resolver | <URLResolver 'flux_dealer_api.urls' (None:None) '^/'> |
resolver_match | ResolverMatch(func=dealers.views.dealers.DealersDetailView, args=(), kwargs={'type': 'dealers', 'garage_agentref': 'G1092'}, url_name=view_dealers_detail, app_names=[], namespaces=[], route=^directory/(?P<type>(dealers|schools))/(?P<garage_agentref>([a-zA-Z])[\d]+)/$) |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f5aafe07fd0> |
wrapped_callback | <function DealersDetailView at 0x7f5aaef60820> |
/app/.heroku/python/lib/python3.8/site-packages/django/views/generic/base.py
in view
self.head = self.get
self.setup(request, *args, **kwargs)
if not hasattr(self, 'request'):
raise AttributeError(
"%s instance has no 'request' attribute. Did you override "
"setup() and forget to call super()?" % cls.__name__
)
return self.dispatch(request, *args, **kwargs)…
view.view_class = cls
view.view_initkwargs = initkwargs
# take name and docstring from class
update_wrapper(view, cls, updated=())
Variable | Value |
---|---|
args | () |
cls | <class 'dealers.views.dealers.DealersDetailView'> |
initkwargs | {} |
kwargs | {'garage_agentref': 'G1092', 'type': 'dealers'} |
request | <WSGIRequest: GET '/directory/dealers/G1092/'> |
self | <dealers.views.dealers.DealersDetailView object at 0x7f5aaed761c0> |
/app/.heroku/python/lib/python3.8/site-packages/django/views/generic/base.py
in dispatch
# Try to dispatch to the right method; if a method doesn't exist,
# defer to the error handler. Also defer to the error handler if the
# request method isn't on the approved list.
if request.method.lower() in self.http_method_names:
handler = getattr(self, request.method.lower(), self.http_method_not_allowed)
else:
handler = self.http_method_not_allowed
return handler(request, *args, **kwargs)…
def http_method_not_allowed(self, request, *args, **kwargs):
logger.warning(
'Method Not Allowed (%s): %s', request.method, request.path,
extra={'status_code': 405, 'request': request}
)
Variable | Value |
---|---|
args | () |
handler | <bound method DealersDetailView.get of <dealers.views.dealers.DealersDetailView object at 0x7f5aaed761c0>> |
kwargs | {'garage_agentref': 'G1092', 'type': 'dealers'} |
request | <WSGIRequest: GET '/directory/dealers/G1092/'> |
self | <dealers.views.dealers.DealersDetailView object at 0x7f5aaed761c0> |
/app/dealers/views/dealers.py
in get
messages.error(request,
'Invalid reference please use the search below')
url = reverse('view_dealers_search',
kwargs={'type': dealerType})
return redirect(url, permanent=True)
self.object.garage_text = re.sub('\r\n', ' \n', self.object.garage_text)…
context = self.get_context_data(object=self.object)
context['type'] = dealerType
return self.render_to_response(context)
Variable | Value |
---|---|
args | () |
dealerType | 'dealers' |
kwargs | {'garage_agentref': 'G1092', 'type': 'dealers'} |
request | <WSGIRequest: GET '/directory/dealers/G1092/'> |
self | <dealers.views.dealers.DealersDetailView object at 0x7f5aaed761c0> |
/app/.heroku/python/lib/python3.8/re.py
in sub
def sub(pattern, repl, string, count=0, flags=0):
"""Return the string obtained by replacing the leftmost
non-overlapping occurrences of the pattern in string by the
replacement repl. repl can be either a string or a callable;
if a string, backslash escapes in it are processed. If it is
a callable, it's passed the Match object and must return
a replacement string to be used."""
return _compile(pattern, flags).sub(repl, string, count)…
def subn(pattern, repl, string, count=0, flags=0):
"""Return a 2-tuple containing (new_string, number).
new_string is the string obtained by replacing the leftmost
non-overlapping occurrences of the pattern in the source
string by the replacement repl. number is the number of
Variable | Value |
---|---|
count | 0 |
flags | 0 |
pattern | '\r\n' |
repl | ' \n' |
string | None |
AnonymousUser
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
HTTP_ACCEPT | '*/*' |
HTTP_ACCEPT_ENCODING | 'gzip' |
HTTP_CDN_LOOP | 'cloudflare; subreqs=1' |
HTTP_CF_CONNECTING_IP | '35.175.174.36' |
HTTP_CF_EW_VIA | '15' |
HTTP_CF_IPCITY | 'Ashburn' |
HTTP_CF_IPCONTINENT | 'NA' |
HTTP_CF_IPCOUNTRY | 'US' |
HTTP_CF_IPLATITUDE | '39.04690' |
HTTP_CF_IPLONGITUDE | '-77.49030' |
HTTP_CF_METRO_CODE | '511' |
HTTP_CF_POSTAL_CODE | '20149' |
HTTP_CF_RAY | '86b7e692d23e2d28-IAD' |
HTTP_CF_REGION | 'Virginia' |
HTTP_CF_REGION_CODE | 'VA' |
HTTP_CF_TIMEZONE | 'America/New_York' |
HTTP_CF_VISITOR | '{"scheme":"https"}' |
HTTP_CF_WORKER | 'bikesure.co.uk' |
HTTP_CONNECTION | 'close' |
HTTP_CONNECT_TIME | '0' |
HTTP_HOST | 'flux-dealers-api.herokuapp.com' |
HTTP_REFERER | 'https://www.bikesure.co.uk/directory/dealers/all/?source=G1092' |
HTTP_TOTAL_ROUTE_TIME | '0' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_VIA | '1.1 vegur, 1.1 vegur' |
HTTP_X_FORWARDED_FOR | '35.175.174.36, 172.71.223.124, 10.1.38.199, 34.254.65.253' |
HTTP_X_FORWARDED_PORT | '443' |
HTTP_X_FORWARDED_PROTO | 'https' |
HTTP_X_REAL_IP | '10.1.38.199' |
HTTP_X_REQUEST_ID | '57bf0f21-1236-44ab-856a-e9b1257688f3' |
HTTP_X_REQUEST_START | '1711631849578' |
PATH_INFO | '/directory/dealers/G1092/' |
QUERY_STRING | '' |
RAW_URI | '/directory/dealers/G1092/' |
REMOTE_ADDR | '10.1.42.102' |
REMOTE_PORT | '28039' |
REQUEST_METHOD | 'GET' |
SCRIPT_NAME | '' |
SERVER_NAME | '0.0.0.0' |
SERVER_PORT | '47194' |
SERVER_PROTOCOL | 'HTTP/1.1' |
SERVER_SOFTWARE | 'gunicorn/20.1.0' |
gunicorn.socket | <socket.socket fd=11, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('172.16.150.162', 47194), raddr=('10.1.42.102', 28039)> |
wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f5aaed98610> |
wsgi.file_wrapper | '' |
wsgi.input | <gunicorn.http.body.Body object at 0x7f5aaed98f40> |
wsgi.input_terminated | True |
wsgi.multiprocess | True |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'https' |
wsgi.version | (1, 0) |
flux_dealer_api.settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ADMIN_INDEX_TITLE | 'Service Administration' |
ADMIN_PATH | 'BK3T4ZZ7' |
ADMIN_SITE_HEADER | 'Hut42 | flux_dealer_api' |
ADMIN_SITE_TITLE | 'Service Administration' |
AFFILIATE_LEAD_API | '********************' |
ALLOWED_HOSTS | ['*'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
AWS_ACCESS_KEY_ID | '********************' |
AWS_SECRET_ACCESS_KEY | '********************' |
AWS_STORAGE_BUCKET_NAME | 'dealer-images' |
BASE_DIR | '/app' |
BROKER_URL | 'redis://default:zFHzHg3uaj1Ks5urv2RiC6vAP0oHlFtQ@redis-19360.c243.eu-west-1-3.ec2.cloud.redislabs.com:19360' |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache'}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
CORS_MODEL | 'hut42.CorsOrigin' |
CSRF_COOKIE_AGE | 31449600 |
CSRF_COOKIE_DOMAIN | None |
CSRF_COOKIE_HTTPONLY | False |
CSRF_COOKIE_NAME | 'csrftoken' |
CSRF_COOKIE_PATH | '/' |
CSRF_COOKIE_SAMESITE | 'Lax' |
CSRF_COOKIE_SECURE | False |
CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
CSRF_HEADER_NAME | 'HTTP_X_CSRFTOKEN' |
CSRF_TRUSTED_ORIGINS | [] |
CSRF_USE_SESSIONS | False |
CSS_FILE | 'https://flux-dealers-api.herokuapp.com/static/dealers/css/bikesure.min.css' |
DATABASES | {'dealers': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.mysql', 'HOST': 'bikesure-dealer.cqqfsrjszj2u.eu-west-1.rds.amazonaws.com', 'NAME': 'Dealers', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': 3306, 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'dealerapi'}, 'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 500, 'ENGINE': 'django.contrib.gis.db.backends.postgis', 'HOST': 'ec2-99-80-210-37.eu-west-1.compute.amazonaws.com', 'NAME': 'd1v7e0p34s0d46', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': 5432, 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'qcumkrrubikphm'}} |
DATABASE_ROUTERS | [] |
DATABASE_URL | 'postgres://qcumkrrubikphm:51061ad84b906784f9d296c8e4e1dfa24e752769842d34da1e47c0678289fa50@ec2-99-80-210-37.eu-west-1.compute.amazonaws.com:5432/d1v7e0p34s0d46' |
DATA_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 |
DATETIME_FORMAT | 'N j, Y, P' |
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'] |
DEALER_DB_URL | 'mysql://dealerapi:ZoVrLreYnwc8tQeK@bikesure-dealer.cqqfsrjszj2u.eu-west-1.rds.amazonaws.com:3306/Dealers' |
DEBUG | 'True' |
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_LOG_LEVEL | 'INFO' |
DEFAULT_TABLESPACE | '' |
DISALLOWED_USER_AGENTS | [] |
DISALLOW_FRONTEND | False |
EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
EMAIL_HOST | 'localhost' |
EMAIL_HOST_PASSWORD | '********************' |
EMAIL_HOST_USER | '' |
EMAIL_PORT | 25 |
EMAIL_SSL_CERTFILE | None |
EMAIL_SSL_KEYFILE | '********************' |
EMAIL_SUBJECT_PREFIX | '[Django] ' |
EMAIL_TIMEOUT | None |
EMAIL_USE_LOCALTIME | False |
EMAIL_USE_SSL | False |
EMAIL_USE_TLS | False |
ENVIRONMENT | 'Live' |
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 |
FORM_RENDERER | 'django.forms.renderers.DjangoTemplates' |
GDAL_LIBRARY_PATH | '/app/.heroku-geo-buildpack/vendor/lib/libgdal.so' |
GEOADDRESS_SERVICE | 'https://geo-service.insurergate.co.uk/api/geo' |
GEOS_LIBRARY_PATH | '/app/.heroku-geo-buildpack/vendor/lib/libgeos_c.so' |
GOOGLE_MAPS_KEY | '********************' |
IGNORABLE_404_URLS | [] |
INSTALLED_APPS | ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'whitenoise.runserver_nostatic', 'django.contrib.staticfiles', 'django.contrib.gis', 'django.contrib.sites', 'django.contrib.redirects', 'django_extensions', 'corsheaders', 'robots', 'rest_framework', 'rest_framework_tracking', 'debug_toolbar', 'dealers', 's3direct'] |
INTERNAL_IPS | ['127.0.0.1'] |
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'), ('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')] |
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 | '/' |
LOCALE_PATHS | [] |
LOGGING | {'disable_existing_loggers': False, 'handlers': {'console': {'class': 'logging.StreamHandler', 'level': 'INFO', 'stream': <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>}, 'debug_file': {'class': 'logging.FileHandler', 'filename': 'debug.log', 'level': 'DEBUG'}, 'fakertrail': {'class': 'logging.handlers.HTTPHandler', 'host': 'zugd76r23tzfezte653fzdssds.insurergate.co.uk', 'level': 'INFO', 'method': 'POST', 'secure': True, 'url': '/api/v1/log/flux-dealer-directory-live/'}}, 'loggers': {'dealers_datacheck': {'handlers': ['fakertrail'], 'level': 'INFO', 'propagate': True}, 'django': {'handlers': ['console', 'debug_file'], 'level': 'INFO', 'propagate': True}}, 'version': 1} |
LOGGING_CONFIG | 'logging.config.dictConfig' |
LOGIN_REDIRECT_URL | '/accounts/profile/' |
LOGIN_URL | '/accounts/login/' |
LOGOUT_REDIRECT_URL | None |
MANAGERS | [] |
MEDIA_ROOT | '' |
MEDIA_URL | '' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
MIDDLEWARE | ['django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', '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', 'django.contrib.redirects.middleware.RedirectFallbackMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware'] |
MIGRATION_MODULES | {} |
MONTH_DAY_FORMAT | 'F j' |
NUMBER_GROUPING | 0 |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT_DAYS | '********************' |
PREPEND_WWW | False |
PROJECT_NAME | 'flux_dealer_api' |
PROJECT_ROOT | '/app/flux_dealer_api' |
QUOTEHANDLER_API | '********************' |
REGABI_SERVICE | 'https://regabi-service.adrianflux.co.uk/api' |
REST_FRAMEWORK | {'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.SessionAuthentication', 'rest_framework.authentication.BasicAuthentication'), 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination', 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',), 'PAGE_SIZE': 50} |
ROOT_URLCONF | 'flux_dealer_api.urls' |
S3DIRECT_DESTINATIONS | {'dealer_images': {'allowed': ['image/jpeg', 'image/png'], 'cache_control': 'max-age=2592000', 'content_length_range': (3000, 20000000), 'key': '********************'}} |
S3DIRECT_REGION | 'eu-west-1' |
SECRET_KEY | '********************' |
SECURE_BROWSER_XSS_FILTER | False |
SECURE_CONTENT_TYPE_NOSNIFF | False |
SECURE_HSTS_INCLUDE_SUBDOMAINS | False |
SECURE_HSTS_PRELOAD | False |
SECURE_HSTS_SECONDS | 0 |
SECURE_PROXY_SSL_HEADER | ('HTTP_X_FORWARDED_PROTO', 'https') |
SECURE_REDIRECT_EXEMPT | [] |
SECURE_SSL_HOST | None |
SECURE_SSL_REDIRECT | False |
SERVER_EMAIL | 'root@localhost' |
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_SAMESITE | 'Lax' |
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_EXPORT | ['PROJECT_NAME', 'DEBUG', 'GOOGLE_MAPS_KEY', 'AFFILIATE_LEAD_API', 'QUOTEHANDLER_API', 'CSS_FILE'] |
SETTINGS_MODULE | 'flux_dealer_api.settings' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
SITE_ID | 1 |
STATICFILES_DIRS | ['/app/flux_dealer_api/static'] |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'whitenoise.storage.CompressedManifestStaticFilesStorage' |
STATIC_ROOT | '/app/flux_dealer_api/staticfiles' |
STATIC_URL | '/static/' |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], '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', 'django_settings_export.settings_export'], 'debug': 'True'}}] |
TEST_NON_SERIALIZED_APPS | [] |
TEST_RUNNER | 'django.test.runner.DiscoverRunner' |
THOUSAND_SEPARATOR | ',' |
TIME_FORMAT | 'P' |
TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
TIME_ZONE | 'UTC' |
USE_I18N | True |
USE_L10N | True |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | True |
USE_X_FORWARDED_HOST | False |
USE_X_FORWARDED_PORT | False |
WSGI_APPLICATION | 'flux_dealer_api.wsgi.application' |
X_FRAME_OPTIONS | 'SAMEORIGIN' |
YEAR_MONTH_FORMAT | 'F Y' |
You're seeing this error because you have DEBUG = True
in your
Django settings file. Change that to False
, and Django will
display a standard page generated by the handler for this status code.