TemplateDoesNotExist at /contact/

django_contact_form/contact_form.html
Request Method: GET
Request URL: http://weatherate.com/contact/
Django Version: 4.2.7
Exception Type: TemplateDoesNotExist
Exception Value:
django_contact_form/contact_form.html
Exception Location: /app/lib/python3.11/site-packages/django/template/loader.py, line 47, in select_template
Raised during: weatherate.views.CaptchaContactFormView
Python Executable: /app/bin/python
Python Version: 3.11.7
Python Path:
['/home/weatherate/weatherate_v2/weatherate_django/weatherate_project/',
 '/home/weatherate/weatherate_v2/weatherate_django/',
 '/home/weatherate/weatherate_v2/',
 '/app/src',
 '/app',
 '/app/src',
 '/usr/local/lib/python311.zip',
 '/usr/local/lib/python3.11',
 '/usr/local/lib/python3.11/lib-dynload',
 '/app/lib/python3.11/site-packages']
Server time: Fri, 29 Mar 2024 11:51:39 +0000

Template-loader postmortem

Django tried loading these templates, in this order:

Using engine django:

Traceback Switch to copy-and-paste view



Request information

USER

AnonymousUser

GET

No GET data

POST

No POST data

FILES

No FILES data

No cookie data

META

Variable Value
BOGUS
'1'
CONTENT_LENGTH
''
CONTENT_TYPE
'text/plain'
DATABASE_URL
'mysql://weatherate:xUVvWDtuwPnqmnVrN49heQ4Xyv8A2yEw@mysql:3306/weatherate'
DJANGO_ADMIN_URL
'^admin/'
DJANGO_ALLOWED_HOSTS
'localhost,django,prod.weatherate.com,www.weatherate.com,weatherate.com'
DJANGO_CSRF_TRUSTED_ORIGINS
'https://prod.weatherate.com,https://www.weatherate.com,https://weatherate.com'
DJANGO_DEBUG
'True'
DJANGO_PORT
'tcp://10.43.14.117:8000'
DJANGO_PORT_8000_TCP
'tcp://10.43.14.117:8000'
DJANGO_PORT_8000_TCP_ADDR
'10.43.14.117'
DJANGO_PORT_8000_TCP_PORT
'8000'
DJANGO_PORT_8000_TCP_PROTO
'tcp'
DJANGO_SECRET_KEY
'********************'
DJANGO_SECURE_SSL_REDIRECT
'False'
DJANGO_SERVICE_HOST
'10.43.14.117'
DJANGO_SERVICE_PORT
'8000'
DJANGO_SETTINGS_MODULE
'weatherate_project.settings.production'
GATEWAY_INTERFACE
'CGI/1.1'
GIS_DATABASE_URL
'sqlite3 /data/sqlite/weatherate_gis.db'
GIS_DB_NAME
'weatherate_gis.db'
GPG_KEY
'********************'
HOME
'/root'
HOSTNAME
'django-c8c575c6c-5fmf5'
HTTP_ACCEPT
'*/*'
HTTP_ACCEPT_ENCODING
'gzip'
HTTP_HOST
'weatherate.com'
HTTP_USER_AGENT
'claudebot'
HTTP_X_FORWARDED_FOR
'10.42.0.1'
HTTP_X_FORWARDED_HOST
'weatherate.com'
HTTP_X_FORWARDED_PORT
'443'
HTTP_X_FORWARDED_PROTO
'https'
HTTP_X_FORWARDED_SERVER
'traefik-7885b64d8d-rnz6r'
HTTP_X_REAL_IP
'10.42.0.1'
KUBERNETES_PORT
'tcp://10.43.0.1:443'
KUBERNETES_PORT_443_TCP
'tcp://10.43.0.1:443'
KUBERNETES_PORT_443_TCP_ADDR
'10.43.0.1'
KUBERNETES_PORT_443_TCP_PORT
'443'
KUBERNETES_PORT_443_TCP_PROTO
'tcp'
KUBERNETES_SERVICE_HOST
'10.43.0.1'
KUBERNETES_SERVICE_PORT
'443'
KUBERNETES_SERVICE_PORT_HTTPS
'443'
LANG
'C.UTF-8'
LINODE_ACCESS_KEY
'********************'
LINODE_SECRET_KEY
'********************'
MYSQL_DATABASE
'weatherate'
MYSQL_PASSWORD
'********************'
MYSQL_PORT
'tcp://10.43.211.148:3306'
MYSQL_PORT_3306_TCP
'tcp://10.43.211.148:3306'
MYSQL_PORT_3306_TCP_ADDR
'10.43.211.148'
MYSQL_PORT_3306_TCP_PORT
'3306'
MYSQL_PORT_3306_TCP_PROTO
'tcp'
MYSQL_ROOT_PASSWORD
'********************'
MYSQL_SERVICE_HOST
'10.43.211.148'
MYSQL_SERVICE_PORT
'3306'
MYSQL_USER
'weatherate'
PATH
'/app/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
PATH_INFO
'/contact/'
PWD
'/app/src'
PYTHONPATH
'/app:/app/src'
PYTHONUNBUFFERED
'1'
PYTHON_GET_PIP_SHA256
'7cfd4bdc4d475ea971f1c0710a5953bcc704d171f83c797b9529d9974502fcc6'
PYTHON_GET_PIP_URL
'https://github.com/pypa/get-pip/raw/049c52c665e8c5fd1751f942316e0a5c777d304f/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
'10.42.0.15'
REMOTE_HOST
''
REQUEST_METHOD
'GET'
RESTART_DUMMY_
'1702309418'
RUN_MAIN
'true'
SCRIPT_DIRECTORY
'/app/src/scripts'
SCRIPT_NAME
''
SERVER_NAME
'django-c8c575c6c-5fmf5'
SERVER_PORT
'8000'
SERVER_PROTOCOL
'HTTP/1.1'
SERVER_SOFTWARE
'WSGIServer/0.2'
STRIPE_ENDPOINT_SECRET
'********************'
STRIPE_PRICE_ID
'price_1MOO5DI5KTeBwbhVwo7GU9qu'
STRIPE_PUBLISHABLE_KEY
'********************'
STRIPE_SECRET_KEY
'********************'
TEMPLATE_DIRECTORY
'/app/src/weatherate_project/templates'
TZ
'UTC'
WXR_OUTPUT_DIR
'/data/crons/'
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 0x7fc0e09975e0>
wsgi.multiprocess
False
wsgi.multithread
True
wsgi.run_once
False
wsgi.url_scheme
'http'
wsgi.version
(1, 0)

Settings

Using settings module weatherate_project.settings.production

Setting Value
ABSOLUTE_URL_OVERRIDES
{}
ADMINS
[('admin', 'admin@weatherate.com')]
ALLOWED_HOSTS
['localhost',
 'django',
 'prod.weatherate.com',
 'www.weatherate.com',
 'weatherate.com']
ALLOW_REPORT_EDITING
False
APPEND_SLASH
True
AUTHENTICATION_BACKENDS
['django.contrib.auth.backends.ModelBackend']
AUTH_PASSWORD_VALIDATORS
'********************'
AUTH_USER_MODEL
'users.CustomUser'
BASE_DIR
'/app/src/weatherate_project'
CACHES
{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS
'default'
CACHE_MIDDLEWARE_KEY_PREFIX
'********************'
CACHE_MIDDLEWARE_SECONDS
600
CAPTCHA_FLITE_PATH
'/usr/bin/flite'
CAPTCHA_SOX_PATH
'/usr/bin/sox'
CONTACT_FORM_ADDRESSES
['bruce@weatherate.com']
COUNTIES_CSV_FILE
'/app/src/weatherate_project/data/counties.csv'
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://prod.weatherate.com',
 'https://www.weatherate.com',
 'https://weatherate.com']
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': 'mysql',
             'NAME': 'weatherate',
             'OPTIONS': {},
             'PASSWORD': '********************',
             'PORT': 3306,
             'TEST': {'CHARSET': None,
                      'COLLATION': None,
                      'MIGRATE': True,
                      'MIRROR': None,
                      'NAME': None},
             'TIME_ZONE': None,
             'USER': 'weatherate'},
 'gis': {'ATOMIC_REQUESTS': False,
         'AUTOCOMMIT': True,
         'CONN_HEALTH_CHECKS': False,
         'CONN_MAX_AGE': 0,
         'ENGINE': 'django.contrib.gis.db.backends.spatialite',
         'HOST': '',
         'NAME': '/data/sqlite/weatherate_gis.db',
         'OPTIONS': {},
         'PASSWORD': '********************',
         'PORT': '',
         'TEST': {'CHARSET': None,
                  'COLLATION': None,
                  'MIGRATE': True,
                  'MIRROR': None,
                  'NAME': None},
         'TIME_ZONE': None,
         'USER': 'root'}}
DATABASE_ROUTERS
['ahps.router.GISRouter', 'weatherate.router.DefaultRouter']
DATA_UPLOAD_MAX_MEMORY_SIZE
2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS
10240
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
'admin@weatherate.com'
DEFAULT_INDEX_TABLESPACE
''
DEFAULT_TABLESPACE
''
DISALLOWED_USER_AGENTS
[]
EMAIL_BACKEND
'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST
'smtp.mailgun.org'
EMAIL_HOST_PASSWORD
'********************'
EMAIL_HOST_USER
'postmaster@mg.weatherate.com'
EMAIL_PORT
587
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
True
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.DjangoTemplates'
HONEYPOT_FIELD_NAME
'captcha_2'
HONEYPOT_VALUE
<function <lambda> at 0x7fc0fb694360>
HONEYPOT_VERIFIER
<function <lambda> at 0x7fc0fb6963e0>
IGNORABLE_404_URLS
[]
INSTALLED_APPS
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.gis',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'formtools',
 'django_contact_form',
 'captcha',
 'django_extensions',
 'simple_history',
 'honeypot',
 'weatherate.apps.WeatherateConfig',
 'users.apps.UsersConfig',
 'ahps',
 'tiger',
 'wxr',
 'references']
INTERNAL_IPS
[]
LANGUAGES
[('en', 'English'), ('es', 'Spanish')]
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
('/app/src/weatherate_project/locale',)
LOCKOUT_EN
True
LOCKOUT_ESP
False
LOGGING
{}
LOGGING_CONFIG
'logging.config.dictConfig'
LOGIN_REDIRECT_URL
'menu'
LOGIN_URL
'/users/login'
LOGOUT_REDIRECT_URL
None
MANAGERS
[('Bruce Fixman', 'bruce@weatherate.com')]
MEDIA_ROOT
''
MEDIA_URL
'/'
MESSAGE_STORAGE
'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'simple_history.middleware.HistoryRequestMiddleware']
MIGRATION_MODULES
{}
MONTH_DAY_FORMAT
'F j'
NUMBER_GROUPING
0
PASSWORD_HASHERS
'********************'
PASSWORD_RESET_TIMEOUT
'********************'
PREPEND_WWW
False
ROOT_URLCONF
'weatherate_project.urls'
SCREENSHOT_BACKUP
'/data/crons/screenshot_backups/'
SCREENSHOT_DESTINATION
'/app/src/weatherate/static/weatherate/screenshots/'
SCREENSHOT_URI
'/static/weatherate/screenshots/'
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
SEND_MAIL_TO_USER
False
SERVER_EMAIL
'admin@weatherate.com'
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
True
SESSION_SERIALIZER
'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE
'weatherate_project.settings.production'
SHORT_DATETIME_FORMAT
'm/d/Y P'
SHORT_DATE_FORMAT
'm/d/Y'
SIGNING_BACKEND
'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS
[]
STATICFILES_DIRS
[]
STATICFILES_FINDERS
['django.contrib.staticfiles.finders.FileSystemFinder',
 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATICFILES_STORAGE
'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT
'/app/src/weatherate/collectstatic/'
STATIC_URL
'/static/'
STORAGES
{'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'},
 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}}
STRIPE_ENDPOINT_SECRET
'********************'
STRIPE_PRICE_ID
'price_1MOO5DI5KTeBwbhVwo7GU9qu'
STRIPE_PUBLISHABLE_KEY
'********************'
STRIPE_SECRET_KEY
'********************'
TEMPLATES
[{'APP_DIRS': True,
  'BACKEND': 'django.template.backends.django.DjangoTemplates',
  'DIRS': ['/app/src/weatherate_project/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',
                                     'django.template.context_processors.i18n']}}]
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'
TOAST_NOTIFICATION
True
UNAPPROVED_USERS_LINK
'http://weatherate.com/admin/users/customuser/?approved__exact=0'
USE_DEPRECATED_PYTZ
False
USE_I18N
True
USE_L10N
True
USE_THOUSAND_SEPARATOR
False
USE_TZ
True
USE_X_FORWARDED_HOST
False
USE_X_FORWARDED_PORT
False
VERIFICATION_EMAIL_ADDRESS
'bruce@weatherate.com'
VERIFICATION_EMAIL_ADDRESS_CC
'matt@weatherate.com'
VERIFICATION_EMAIL_DAYS
14
WSGI_APPLICATION
'weatherate_project.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.