'DataFrame' object has no attribute 'confirmation_status'
Request Method: | GET |
---|---|
Request URL: | http://localhost:8010/author/1440/ |
Django Version: | 4.2.2 |
Exception Type: | AttributeError |
Exception Value: | 'DataFrame' object has no attribute 'confirmation_status' |
Exception Location: | /usr/local/lib/python3.11/site-packages/pandas/core/generic.py, line 6202, in __getattr__ |
Raised during: | metacanon_frontend.views.author |
Python Executable: | /usr/local/bin/python |
Python Version: | 3.11.7 |
Python Path: | ['/code', '/usr/local/lib/python311.zip', '/usr/local/lib/python3.11', '/usr/local/lib/python3.11/lib-dynload', '/usr/local/lib/python3.11/site-packages'] |
Server time: | Fri, 29 Mar 2024 00:19:42 +0000 |
/usr/local/lib/python3.11/site-packages/django/core/handlers/exception.py
, line 55, in inner
return inner
else:
@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 | AttributeError("'DataFrame' object has no attribute 'confirmation_status'") |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f56c137b450>> |
request | <WSGIRequest: GET '/author/1440/'> |
/usr/local/lib/python3.11/site-packages/django/core/handlers/base.py
, line 197, in _get_response
if response is None:
wrapped_callback = self.make_view_atomic(callback)
# If it is an asynchronous view, run it in a subthread.
if iscoroutinefunction(wrapped_callback):
wrapped_callback = async_to_sync(wrapped_callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
except Exception as e:
response = self.process_exception_by_middleware(e, request)
if response is None:
raise
# Complain if the view returned None (a common error).
Variable | Value |
---|---|
callback | <function author at 0x7f56c1618720> |
callback_args | () |
callback_kwargs | {'author_id': 1440} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>> |
request | <WSGIRequest: GET '/author/1440/'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f56c137b450> |
wrapped_callback | <function author at 0x7f56c1618720> |
/code/metacanon_frontend/views/__init__.py
, line 147, in author
last_name = found_author.last_name
# Only display non-zero weights
non_zero_weights = {k: v for k, v in preset.weights.items() if v != 0.0}
data_sources = list(DataSource.objects.filter(name__in=non_zero_weights).values())
user_id = request.user.id if request.user.is_authenticated else None
is_superuser = request.user.is_superuser
canon = Canon(preset, is_superuser).get_works_by_author(author_id=author_id, user_id=user_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
if found_author.date_of_birth is None:
author_birth_year = '?'
else:
author_birth_year = found_author.date_of_birth.year
Variable | Value |
---|---|
author_id | 1440 |
data_sources | [{'access_level': 1, 'deprecated': False, 'human_readable_name': 'JSTOR Language and Literature', 'id': 3, 'name': 'jstor_language_and_literature', 'ngram_frequency_correction_strategy': 'coca', 'source_type': 'citation_count'}, {'access_level': 1, 'deprecated': False, 'human_readable_name': 'Google Scholar', 'id': 4, 'name': 'google_scholar', 'ngram_frequency_correction_strategy': None, 'source_type': 'citation_count'}, {'access_level': 1, 'deprecated': False, 'human_readable_name': 'ALH', 'id': 5, 'name': 'alh', 'ngram_frequency_correction_strategy': 'coca', 'source_type': 'citation_count'}, {'access_level': 1, 'deprecated': False, 'human_readable_name': 'American Literature', 'id': 6, 'name': 'american_literature', 'ngram_frequency_correction_strategy': 'coca', 'source_type': 'citation_count'}] |
first_name | 'Charles Brockden' |
found_author | <Author: Author object (1440)> |
is_superuser | False |
last_name | 'Brown' |
non_zero_weights | {'alh': 1.0, 'american_literature': 1.0, 'google_scholar': 0.5, 'jstor_language_and_literature': 1.0} |
preset | <UserPreset: UserPreset object (-1)> |
request | <WSGIRequest: GET '/author/1440/'> |
user_id | None |
/code/metacanon_core/data/canon.py
, line 43, in get_works_by_author
pages.append(canon[i * self.preset.books_per_page:])
else:
last_work = first_work + self.preset.books_per_page
pages.append(canon[i * self.preset.books_per_page:last_work])
return pages
def get_works_by_author(self, author_id: int, user_id: int = None):
works: DataFrame = self._get_included_works(self.preset, author_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
if not works.empty:
if self.preset.ordered_by == 'title':
works = works.sort_values(['title'])
elif self.preset.ordered_by == 'year':
works = works.sort_values(['publication_year'])
Variable | Value |
---|---|
author_id | 1440 |
self | <metacanon_core.data.canon.Canon object at 0x7f56bb6a9790> |
user_id | None |
/code/metacanon_core/data/canon.py
, line 161, in _get_included_works
else:
works['status'] = 'unread'
return works
def _get_included_works(self, preset, author_id: int = None) -> DataFrame:
works_df = Canon._get_included_works_no_limit(preset, author_id)
if not self._is_superuser:
works_df = works_df[works_df.confirmation_status == 'confirmed'] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
works_df = works_df[:preset.total_books]
return works_df
@staticmethod
def _get_included_works_no_limit(preset, author_id: int = None):
works: QuerySet = Work.objects
Variable | Value |
---|---|
author_id | 1440 |
preset | <UserPreset: UserPreset object (-1)> |
self | <metacanon_core.data.canon.Canon object at 0x7f56bb6a9790> |
works_df | Empty DataFrame Columns: [] Index: [] |
/usr/local/lib/python3.11/site-packages/pandas/core/generic.py
, line 6202, in __getattr__
if (
name not in self._internal_names_set
and name not in self._metadata
and name not in self._accessors
and self._info_axis._can_hold_identifiers_and_holds_name(name)
):
return self[name]
return object.__getattribute__(self, name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
@final
def __setattr__(self, name: str, value) -> None:
"""
After regular attribute access, try setting the name
This allows simpler access to columns for interactive use.
Variable | Value |
---|---|
name | 'confirmation_status' |
self | Empty DataFrame Columns: [] Index: [] |
AnonymousUser
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
CONTENT_LENGTH | '' |
CONTENT_TYPE | 'text/plain' |
DJANGO_SETTINGS_MODULE | 'settings' |
DOCKER_NETWORK_HOST | '172.17.0.1' |
GATEWAY_INTERFACE | 'CGI/1.1' |
GPG_KEY | '********************' |
HOME | '/root' |
HOSTNAME | '66418851ab98' |
HTTP_ACCEPT | '*/*' |
HTTP_CONNECTION | 'close' |
HTTP_HOST | 'localhost:8010' |
HTTP_REFERER | 'http://metacanon.org/author/1440/' |
HTTP_USER_AGENT | 'claudebot' |
LANG | 'C.UTF-8' |
METACANON_SITE_SUBPATH | '' |
MYSQL_ROOT_PASSWORD | '********************' |
PATH | '/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' |
PATH_INFO | '/author/1440/' |
PWD | '/code' |
PYTHONDONTWRITEBYTECODE | '1' |
PYTHONUNBUFFERED | '1' |
PYTHON_GET_PIP_SHA256 | '9cc01665956d22b3bf057ae8287b035827bfd895da235bcea200ab3b811790b6' |
PYTHON_GET_PIP_URL | 'https://github.com/pypa/get-pip/raw/4cfa4081d27285bda1220a62a5ebf5b4bd749cdb/public/get-pip.py' |
PYTHON_PIP_VERSION | '23.2.1' |
PYTHON_SETUPTOOLS_VERSION | '65.5.1' |
PYTHON_VERSION | '3.11.7' |
QUERY_STRING | '' |
REMOTE_ADDR | '172.19.0.1' |
REMOTE_HOST | '' |
REQUEST_METHOD | 'GET' |
RUN_MAIN | 'true' |
SCRIPT_NAME | '' |
SERVER_NAME | '66418851ab98' |
SERVER_PORT | '8010' |
SERVER_PROTOCOL | 'HTTP/1.0' |
SERVER_SOFTWARE | 'WSGIServer/0.2' |
SHLVL | '0' |
TZ | 'UTC' |
_ | '/usr/local/bin/python' |
wsgi.errors | <_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'> |
wsgi.file_wrapper | <class 'wsgiref.util.FileWrapper'> |
wsgi.input | <django.core.handlers.wsgi.LimitedStream object at 0x7f56ba7077c0> |
wsgi.multiprocess | False |
wsgi.multithread | True |
wsgi.run_once | False |
wsgi.url_scheme | 'http' |
wsgi.version | (1, 0) |
settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ALLOWED_HOSTS | ['*'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
BASE_DIR | '/code' |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'LOCATION': 'unique_cache'}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
CSRF_COOKIE_AGE | 31449600 |
CSRF_COOKIE_DOMAIN | None |
CSRF_COOKIE_HTTPONLY | False |
CSRF_COOKIE_MASKED | 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 | ['https://digitalocean.metacanon.org', 'https://www.metacanon.org', 'https://metacanon.org'] |
CSRF_USE_SESSIONS | False |
DATABASES | {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_HEALTH_CHECKS': False, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.mysql', 'HOST': '172.17.0.1', 'NAME': 'metacanon', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '3306', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'root'}} |
DATABASE_ROUTERS | [] |
DATA_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 |
DATA_UPLOAD_MAX_NUMBER_FILES | 100 |
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', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M'] |
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'] |
DEBUG | True |
DEBUG_PROPAGATE_EXCEPTIONS | False |
DECIMAL_SEPARATOR | '.' |
DEFAULT_AUTO_FIELD | 'django.db.models.AutoField' |
DEFAULT_CHARSET | 'utf-8' |
DEFAULT_EXCEPTION_REPORTER | 'django.views.debug.ExceptionReporter' |
DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
DEFAULT_FROM_EMAIL | 'do_not_reply@metacanon.org' |
DEFAULT_INDEX_TABLESPACE | '' |
DEFAULT_TABLESPACE | '' |
DISALLOWED_USER_AGENTS | [] |
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 |
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 | 420 |
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.TemplatesSetting' |
IGNORABLE_404_URLS | [] |
INSTALLED_APPS | ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'django.forms', 'metacanon_core', 'metacanon_frontend'] |
INTERNAL_IPS | [] |
LANGUAGES | [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('ckb', 'Central Kurdish (Sorani)'), ('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'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('ms', 'Malay'), ('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'), ('tg', 'Tajik'), ('th', 'Thai'), ('tk', 'Turkmen'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] |
LANGUAGES_BIDI | ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ur'] |
LANGUAGE_CODE | 'en-us' |
LANGUAGE_COOKIE_AGE | None |
LANGUAGE_COOKIE_DOMAIN | None |
LANGUAGE_COOKIE_HTTPONLY | False |
LANGUAGE_COOKIE_NAME | 'django_language' |
LANGUAGE_COOKIE_PATH | '/' |
LANGUAGE_COOKIE_SAMESITE | None |
LANGUAGE_COOKIE_SECURE | False |
LOCALE_PATHS | [] |
LOGGING | {'disable_existing_loggers': False, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/code/debug.log', 'level': 'DEBUG'}}, 'loggers': {'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}}, 'version': 1} |
LOGGING_CONFIG | 'logging.config.dictConfig' |
LOGIN_REDIRECT_URL | '/user/' |
LOGIN_URL | '/accounts/login/' |
LOGOUT_REDIRECT_URL | None |
MANAGERS | [] |
MEDIA_ROOT | '/code/static_media' |
MEDIA_URL | '/media/' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
MIDDLEWARE | ['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'] |
MIGRATION_MODULES | {} |
MONTH_DAY_FORMAT | 'F j' |
NUMBER_GROUPING | 0 |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT | '********************' |
PREPEND_WWW | False |
RL_AGENT_DATA_ROOT | '/home/nathanie/metacanon_dev/rl_agent_data/' |
ROOT_URLCONF | 'metacanon_frontend.urls' |
SECRET_KEY | '********************' |
SECRET_KEY_FALLBACKS | '********************' |
SECURE_CONTENT_TYPE_NOSNIFF | True |
SECURE_CROSS_ORIGIN_OPENER_POLICY | 'same-origin' |
SECURE_HSTS_INCLUDE_SUBDOMAINS | False |
SECURE_HSTS_PRELOAD | False |
SECURE_HSTS_SECONDS | 0 |
SECURE_PROXY_SSL_HEADER | None |
SECURE_REDIRECT_EXEMPT | [] |
SECURE_REFERRER_POLICY | 'same-origin' |
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_MODULE | 'settings' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
STATICFILES_DIRS | ['/code/static'] |
STATICFILES_FINDERS | ('django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder') |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | '/home/nathanie/www/static/' |
STATIC_URL | '/static/' |
STORAGES | {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'}, 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}} |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/code/templates'], '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', 'metacanon_frontend.context_processors.export_vars']}}] |
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_DEPRECATED_PYTZ | False |
USE_I18N | True |
USE_L10N | True |
USE_LOCKDOWN | False |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | True |
USE_X_FORWARDED_HOST | False |
USE_X_FORWARDED_PORT | False |
WSGI_APPLICATION | 'wsgi.application' |
X_FRAME_OPTIONS | 'DENY' |
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.