I attempted to pledge support for Ed Case without uploading an image. Was directed to an error page with the text pasted below. Name of candidate and pledge did end up being displayed.
Server time: Tue, 23 Oct 2012 15:30:45 -0700
Traceback Switch to copy-and-paste view
/home/voteclimatechange/local/python-2.7.3/lib/python2.7/site-packages/django/core/handlers/base.py in get_response
response = callback(request, *callback_args, **callback_kwargs)
...
▶ Local vars
/home/voteclimatechange/voteclimatechange.com/voteclimate/views.py in add_statement
if statement_form.is_valid():
...
▶ Local vars
/home/voteclimatechange/local/python-2.7.3/lib/python2.7/site-packages/django/forms/forms.py in is_valid
return self.is_bound and not bool(self.errors)
...
▶ Local vars
/home/voteclimatechange/local/python-2.7.3/lib/python2.7/site-packages/django/forms/forms.py in _get_errors
self.full_clean()
...
▶ Local vars
/home/voteclimatechange/local/python-2.7.3/lib/python2.7/site-packages/django/forms/forms.py in full_clean
self._clean_form()
...
▶ Local vars
/home/voteclimatechange/local/python-2.7.3/lib/python2.7/site-packages/django/forms/forms.py in _clean_form
self.cleaned_data = self.clean()
...
▶ Local vars
/home/voteclimatechange/voteclimatechange.com/voteclimate/models.py in clean
cleaned_data['candidate'] = utils.find_or_make_candidate(cleaned_data['candidate'],cleaned_data['user_object'])
...
▶ Local vars
/home/voteclimatechange/voteclimatechange.com/voteclimate/utils.py in find_or_make_candidate
if candidate_object is None or len(candidate_object) == 0:
...
▶ Local vars
Request information
GET
Variable Value
image_location
u''
support_style
u'I support'
submit
u'Save'
person_name
u'Neal'
candidate
u'Ed Case'
style_id
u'1'
extra_text
u"Unfortunately, he didn't get past the primary."
state
u'Hawaii'
candidate_id
u''
POST
No POST data
FILES
No FILES data
COOKIES
No cookie data
META
Variable Value
wsgi.multiprocess
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 500 page.
Original comment by Nicholas Santos (Bitbucket: nickrsan, GitHub: nickrsan).
Thanks Neal. Good find. I believe now that this isn't just related to support, it's related to looking up a candidate if one isn't selected from the autocomplete options. I'll fix this today.
Original report by Anonymous.
I attempted to pledge support for Ed Case without uploading an image. Was directed to an error page with the text pasted below. Name of candidate and pledge did end up being displayed.
TypeError at /publish/
object of type 'candidate' has no len()
Request Method: GET Request URL: http://voteclimatechange.com/publish/?support_style=I+support&candidate=Ed+Case&candidate_id=&person_name=Neal&state=Hawaii&style_id=1&extra_text=Unfortunately%2C+he+didn%27t+get+past+the+primary.&image_location=&submit=Save Django Version: 1.4.2 Exception Type: TypeError Exception Value:
object of type 'candidate' has no len()
Exception Location: /home/voteclimatechange/voteclimatechange.com/voteclimate/utils.py in find_or_make_candidate, line 234 Python Executable: /home/voteclimatechange/local/python-2.7.3/bin/python2.7 Python Version: 2.7.3 Python Path:
['/usr/local/dh/passenger/lib/phusion_passenger/wsgi', '/home/voteclimatechange/local/python-2.7.3/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg', '/home/voteclimatechange/local/python-2.7.3/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-linux-x86_64.egg', '/home/voteclimatechange/local/python-2.7.3/lib/python27.zip', '/home/voteclimatechange/local/python-2.7.3/lib/python2.7', '/home/voteclimatechange/local/python-2.7.3/lib/python2.7/plat-linux2', '/home/voteclimatechange/local/python-2.7.3/lib/python2.7/lib-tk', '/home/voteclimatechange/local/python-2.7.3/lib/python2.7/lib-old', '/home/voteclimatechange/local/python-2.7.3/lib/python2.7/lib-dynload', '/home/voteclimatechange/local/python-2.7.3/lib/python2.7/site-packages', '/home/voteclimatechange/local/python-2.7.3/lib/python2.7/site-packages/PIL', '/home/voteclimatechange/voteclimatechange.com']
Server time: Tue, 23 Oct 2012 15:30:45 -0700 Traceback Switch to copy-and-paste view
Request information GET Variable Value image_location
u''
support_style
u'I support'
submit
u'Save'
person_name
u'Neal'
candidate
u'Ed Case'
style_id
u'1'
extra_text
u"Unfortunately, he didn't get past the primary."
state
u'Hawaii'
candidate_id
u''
POST
No POST data FILES
No FILES data COOKIES
No cookie data META Variable Value wsgi.multiprocess
True
HTTP_REFERER
'http://voteclimatechange.com/'
SERVER_SOFTWARE
'Apache'
SCRIPT_NAME
u''
REQUEST_METHOD
'GET'
PATH_INFO
u'/publish/'
SERVER_PROTOCOL
'HTTP/1.1'
QUERY_STRING
'support_style=I+support&candidate=Ed+Case&candidate_id=&person_name=Neal&state=Hawaii&style_id=1&extra_text=Unfortunately%2C+he+didn%27t+get+past+the+primary.&image_location=&submit=Save'
HTTP_ACCEPT_CHARSET
'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
HTTP_USER_AGENT
'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0) Gecko/20100101 Firefox/9.0'
HTTP_CONNECTION
'keep-alive'
SERVER_NAME
'voteclimatechange.com'
REMOTE_ADDR
'128.83.146.34'
wsgi.url_scheme
'http'
SERVER_PORT
'80'
PASSENGER_CONNECT_PASSWORD
'Yk3nqUaIiXVvyARfhGvYAC2bzZ4mo4J4bSB0CAx8hru'
SERVER_ADDR
'173.236.166.76'
DOCUMENT_ROOT
'/home/voteclimatechange/voteclimatechange.com/public'
SERVER_ADMIN
'webmaster@voteclimatechange.com'
SCRIPT_URI
'http://voteclimatechange.com/publish/'
wsgi.input
<socket._fileobject object at 0x193e850>
HTTP_HOST
'voteclimatechange.com'
SCRIPT_URL
'/publish/'
wsgi.multithread
False
ds_id_21468832
''
_
'_'
REQUEST_URI
'/publish/?support_style=I+support&candidate=Ed+Case&candidate_id=&person_name=Neal&state=Hawaii&style_id=1&extra_text=Unfortunately%2C+he+didn%27t+get+past+the+primary.&image_location=&submit=Save'
HTTP_ACCEPT
'text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8'
wsgi.version
(1, 0)
wsgi.run_once
True
CSRF_COOKIE
'2FXqKUJek3nvmdGeUQMJyjY0ijgSz1bN'
wsgi.errors
<open file '', mode 'w' at 0x67f1f4336270>
REMOTE_PORT
'49954'
HTTP_ACCEPT_LANGUAGE
'en-us,en;q=0.5'
GEM_HOME
'/home/voteclimatechange/.gems'
dsid
'21468832'
HTTP_ACCEPT_ENCODING
'gzip, deflate'
UNIQUE_ID
'UIcalEWj7-IAAK1s5cUAAAAD'
DH_USER
'voteclimatechange'
Settings Using settings module vote_climate.settings Setting Value USE_L10N
True
USE_THOUSAND_SEPARATOR
False
CSRF_COOKIE_SECURE
False
LANGUAGE_CODE
'en-us'
ROOT_URLCONF
'vote_climate.urls'
MANAGERS
()
DEFAULT_CHARSET
'utf-8'
STATIC_ROOT
'/home/voteclimatechange/voteclimatechange.com/static/collected'
MESSAGE_STORAGE
'django.contrib.messages.storage.fallback.FallbackStorage'
EMAIL_SUBJECT_PREFIX
'[Django] '
FILE_UPLOAD_PERMISSIONS
None
URL_VALIDATOR_USER_AGENT
'Django/1.4.2 (https://www.djangoproject.com)'
STATICFILES_FINDERS
('django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder')
SESSION_COOKIE_DOMAIN
None
SESSION_COOKIE_NAME
'sessionid'
ADMIN_FOR
()
TIME_INPUT_FORMATS
('%H:%M:%S', '%H:%M')
DATABASES
{'default': {'ENGINE': 'django.db.backends.mysql', 'HOST': 'sql.voteclimatechange.com', 'NAME': 'voteclimate', 'OPTIONS': {}, 'PASSWORD': u'****', 'PORT': '', 'TEST_CHARSET': None, 'TEST_COLLATION': None, 'TEST_MIRROR': None, 'TEST_NAME': None, 'TIME_ZONE': 'UTC', 'USER': 'voteclimate_db_u'}}
SERVER_EMAIL
'root@localhost'
FILE_UPLOAD_HANDLERS
('django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler')
DEFAULT_CONTENT_TYPE
'text/html'
APPEND_SLASH
True
FIRST_DAY_OF_WEEK
0
DATABASE_ROUTERS
[]
YEAR_MONTH_FORMAT
'F Y'
STATICFILES_STORAGE
'django.contrib.staticfiles.storage.StaticFilesStorage'
CACHES
{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'LOCATION': ''}}
SESSION_COOKIE_PATH
'/'
USE_X_FORWARDED_HOST
False
MIDDLEWARE_CLASSES
('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware')
USE_I18N
True
THOUSAND_SEPARATOR
','
SECRET_KEY
u'****'
LANGUAGE_COOKIE_NAME
'django_language'
DEFAULT_INDEX_TABLESPACE
''
TRANSACTIONS_MANAGED
False
LOGGING_CONFIG
'django.utils.log.dictConfig'
SEND_BROKEN_LINK_EMAILS
False
TEMPLATE_LOADERS
('django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader')
WSGI_APPLICATION
'vote_climate.wsgi.application'
TEMPLATE_DEBUG
True
X_FRAME_OPTIONS
'SAMEORIGIN'
AUTHENTICATION_BACKENDS
('django.contrib.auth.backends.ModelBackend',)
FORCE_SCRIPT_NAME
None
CACHE_BACKEND
'locmem://'
SIGNING_BACKEND
'django.core.signing.TimestampSigner'
SESSION_COOKIE_SECURE
False
CSRF_COOKIE_DOMAIN
None
FILE_CHARSET
'utf-8'
DEBUG
True
SESSION_FILE_PATH
None
DEFAULT_FILE_STORAGE
'django.core.files.storage.FileSystemStorage'
INSTALLED_APPS
('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.admin', 'voteclimate')
LANGUAGES
(('ar', 'Arabic'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('bn', 'Bengali'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('el', 'Greek'), ('en', 'English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy-nl', 'Frisian'), ('ga', 'Irish'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hu', 'Hungarian'), ('id', 'Indonesian'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('nb', 'Norwegian Bokmal'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('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'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('vi', 'Vietnamese'), ('zh-cn', 'Simplified Chinese'), ('zh-tw', 'Traditional Chinese'))
COMMENTS_ALLOW_PROFANITIES
False
STATICFILES_DIRS
('/home/voteclimatechange/voteclimatechange.com/public/static', '/home/voteclimatechange/voteclimatechange.com/static', '/home/voteclimatechange/voteclimatechange.com/static/media')
PREPEND_WWW
False
SECURE_PROXY_SSL_HEADER
None
SESSION_COOKIE_HTTPONLY
True
DEBUG_PROPAGATE_EXCEPTIONS
False
MONTH_DAY_FORMAT
'F j'
LOGIN_URL
'/accounts/login/'
SESSION_EXPIRE_AT_BROWSER_CLOSE
False
TIME_FORMAT
'P'
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')
CSRF_COOKIE_NAME
'csrftoken'
EMAIL_HOST_PASSWORD
u'****'
PASSWORD_RESET_TIMEOUT_DAYS
u'****'
CACHE_MIDDLEWARE_ALIAS
'default'
SESSION_SAVE_EVERY_REQUEST
False
NUMBER_GROUPING
0
SESSION_ENGINE
'django.contrib.sessions.backends.db'
CSRF_FAILURE_VIEW
'django.views.csrf.csrf_failure'
CSRF_COOKIE_PATH
'/'
LOGIN_REDIRECT_URL
'/accounts/profile/'
LOGGING
{'disable_existing_loggers': False, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}}, 'handlers': {'mail_admins': {'class': 'django.utils.log.AdminEmailHandler', 'filters': ['require_debug_false'], 'level': 'ERROR'}}, 'loggers': {'django.request': {'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': True}}, 'version': 1}
IGNORABLE_404_URLS
()
LOCALE_PATHS
()
TEMPLATE_STRING_IF_INVALID
''
LOGOUT_URL
'/accounts/logout/'
EMAIL_USE_TLS
False
FIXTURE_DIRS
()
EMAIL_HOST
'localhost'
DATE_FORMAT
'N j, Y'
MEDIA_ROOT
'/home/voteclimatechange/voteclimatechange.com/static/media'
DEFAULT_EXCEPTION_REPORTER_FILTER
'django.views.debug.SafeExceptionReporterFilter'
ADMINS
()
FORMAT_MODULE_PATH
None
DEFAULT_FROM_EMAIL
'webmaster@localhost'
MEDIA_URL
'/static/media/'
DATETIME_FORMAT
'N j, Y, P'
TEMPLATE_DIRS
('/home/voteclimatechange/voteclimatechange.com/templates', 'C:/Users/Nick/Eclipse/workspace-main/voteclimate/vote_climate/templates')
SITE_ID
1
DISALLOWED_USER_AGENTS
()
ALLOWED_INCLUDE_ROOTS
()
DECIMAL_SEPARATOR
'.'
SHORT_DATE_FORMAT
'm/d/Y'
TEST_RUNNER
'django.test.simple.DjangoTestSuiteRunner'
CACHE_MIDDLEWARE_KEY_PREFIX
u'****'
TIME_ZONE
'America/Los_Angeles'
FILE_UPLOAD_MAX_MEMORY_SIZE
2621440
EMAIL_BACKEND
'django.core.mail.backends.smtp.EmailBackend'
DEFAULT_TABLESPACE
''
TEMPLATE_CONTEXT_PROCESSORS
('django.contrib.auth.context_processors.auth', 'django.core.context_processors.debug', 'django.core.context_processors.i18n', 'django.core.context_processors.media', 'django.core.context_processors.static', 'django.core.context_processors.tz', 'django.contrib.messages.context_processors.messages')
SITE_NAME
'Vote Climate Change'
SESSION_COOKIE_AGE
1209600
SETTINGS_MODULE
'vote_climate.settings'
USE_ETAGS
False
LANGUAGES_BIDI
('he', 'ar', 'fa')
FILE_UPLOAD_TEMP_DIR
None
INTERNAL_IPS
()
STATIC_URL
'/static/'
EMAIL_PORT
25
USE_TZ
True
SHORT_DATETIME_FORMAT
'm/d/Y P'
PASSWORD_HASHERS
u'****'
ABSOLUTE_URL_OVERRIDES
{}
CACHE_MIDDLEWARE_SECONDS
600
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')
EMAIL_HOST_USER
''
PROFANITIES_LIST
u'****'
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 500 page.