sequence item 1: expected str instance, list found
Request Method: | GET |
---|---|
Request URL: | http://127.0.0.1:8000/en/research/the-natural-decomposition-approach/ |
Django Version: | 1.9.13 |
Exception Type: | TypeError |
Exception Value: | sequence item 1: expected str instance, list found |
Exception Location: | /var/www/myenv/lib/python3.4/site-packages/parler/views.py in get_object, line 167 |
Python Executable: | /var/www/myenv/bin/python3 |
Python Version: | 3.4.3 |
Python Path: | ['/var/www/labunam', '/var/www/myenv/bin', '/var/www/myenv/lib/python3.4', '/var/www/myenv/lib/python3.4/plat-i386-linux-gnu', '/var/www/myenv/lib/python3.4/lib-dynload', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-i386-linux-gnu', '/var/www/myenv/lib/python3.4/site-packages'] |
Server time: | Fri, 29 Mar 2024 07:46:38 +0000 |
/var/www/myenv/lib/python3.4/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 |
---|---|
resolver_match | ResolverMatch(func=unam.apps.lineas_investigacion.views.DetailInvestigacion, args=(), kwargs={'slug': 'the-natural-decomposition-approach'}, url_name=investigacion, app_names=[], namespaces=['investigacion_app']) |
response | None |
callback_kwargs | {'slug': 'the-natural-decomposition-approach'} |
resolver | <RegexURLResolver 'unam.urls' (None:None) ^/> |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0xb5fa11ac>> |
urlconf | 'unam.urls' |
callback | <function DetailInvestigacion at 0xb6c87464> |
request | <WSGIRequest: GET '/en/research/the-natural-decomposition-approach/'> |
wrapped_callback | <function DetailInvestigacion at 0xb6c87464> |
callback_args | () |
self | <django.core.handlers.wsgi.WSGIHandler object at 0xb66bf78c> |
response_is_rendered | False |
/var/www/myenv/lib/python3.4/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 |
---|---|
resolver_match | ResolverMatch(func=unam.apps.lineas_investigacion.views.DetailInvestigacion, args=(), kwargs={'slug': 'the-natural-decomposition-approach'}, url_name=investigacion, app_names=[], namespaces=['investigacion_app']) |
response | None |
callback_kwargs | {'slug': 'the-natural-decomposition-approach'} |
resolver | <RegexURLResolver 'unam.urls' (None:None) ^/> |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0xb5fa11ac>> |
urlconf | 'unam.urls' |
callback | <function DetailInvestigacion at 0xb6c87464> |
request | <WSGIRequest: GET '/en/research/the-natural-decomposition-approach/'> |
wrapped_callback | <function DetailInvestigacion at 0xb6c87464> |
callback_args | () |
self | <django.core.handlers.wsgi.WSGIHandler object at 0xb66bf78c> |
response_is_rendered | False |
/var/www/myenv/lib/python3.4/site-packages/django/views/generic/base.py
in view
def view(request, *args, **kwargs):
self = cls(**initkwargs)
if hasattr(self, 'get') and not hasattr(self, 'head'):
self.head = self.get
self.request = request
self.args = args
self.kwargs = kwargs
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 |
---|---|
cls | <class 'unam.apps.lineas_investigacion.views.DetailInvestigacion'> |
initkwargs | {} |
kwargs | {'slug': 'the-natural-decomposition-approach'} |
self | <unam.apps.lineas_investigacion.views.DetailInvestigacion object at 0xb5afe26c> |
args | () |
request | <WSGIRequest: GET '/en/research/the-natural-decomposition-approach/'> |
/var/www/myenv/lib/python3.4/site-packages/parler/views.py
in dispatch
"""
Define the language choices for the view, defaults to the defined settings.
"""
return get_active_language_choices(self.get_language())
def dispatch(self, request, *args, **kwargs):
try:
return super(TranslatableSlugMixin, self).dispatch(request, *args, **kwargs)...
except FallbackLanguageResolved as e:
# Handle the fallback language redirect for get_object()
with switch_language(e.object, e.correct_language):
return HttpResponsePermanentRedirect(e.object.get_absolute_url())
def get_object(self, queryset=None):
Variable | Value |
---|---|
self | <unam.apps.lineas_investigacion.views.DetailInvestigacion object at 0xb5afe26c> |
kwargs | {'slug': 'the-natural-decomposition-approach'} |
args | () |
__class__ | <class 'parler.views.TranslatableSlugMixin'> |
request | <WSGIRequest: GET '/en/research/the-natural-decomposition-approach/'> |
/var/www/myenv/lib/python3.4/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 |
---|---|
self | <unam.apps.lineas_investigacion.views.DetailInvestigacion object at 0xb5afe26c> |
kwargs | {'slug': 'the-natural-decomposition-approach'} |
handler | <bound method DetailInvestigacion.get of <unam.apps.lineas_investigacion.views.DetailInvestigacion object at 0xb5afe26c>> |
args | () |
request | <WSGIRequest: GET '/en/research/the-natural-decomposition-approach/'> |
/var/www/myenv/lib/python3.4/site-packages/django/views/generic/detail.py
in get
class BaseDetailView(SingleObjectMixin, View):
"""
A base view for displaying a single object
"""
def get(self, request, *args, **kwargs):
self.object = self.get_object()...
context = self.get_context_data(object=self.object)
return self.render_to_response(context)
class SingleObjectTemplateResponseMixin(TemplateResponseMixin):
template_name_field = None
Variable | Value |
---|---|
self | <unam.apps.lineas_investigacion.views.DetailInvestigacion object at 0xb5afe26c> |
kwargs | {'slug': 'the-natural-decomposition-approach'} |
args | () |
request | <WSGIRequest: GET '/en/research/the-natural-decomposition-approach/'> |
/var/www/myenv/lib/python3.4/site-packages/parler/views.py
in get_object
# Translated object not found, next object is marked as fallback.
using_fallback = True
prev_choices.append(lang_choice)
else:
break
if obj is None:
tried_msg = ", tried languages: {0}".format(", ".join(choices))...
error_message = translation.ugettext("No %(verbose_name)s found matching the query") % {'verbose_name': queryset.model._meta.verbose_name}
raise Http404(error_message + tried_msg)
# Object found!
if using_fallback:
# It could happen that objects are resolved using their fallback language,
Variable | Value |
---|---|
prev_choices | ['en', ['es']] |
filters | {'slug': 'the-natural-decomposition-approach'} |
using_fallback | True |
lang_choice | ['es'] |
self | <unam.apps.lineas_investigacion.views.DetailInvestigacion object at 0xb5afe26c> |
choices | ['en', ['es']] |
obj | None |
slug | 'the-natural-decomposition-approach' |
queryset | [<Investigacion: Large-scale reverse engineering of regulatory circuitry>, <Investigacion: Organizational landscape of regulatory circuitry>, <Investigacion: Natural decomposition approach>] |
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0xb5afe46c> |
SERVER_PROTOCOL | 'HTTP/1.0' |
HTTP_X_FORWARDED_HOST | 'freyrelab.org' |
SERVER_NAME | '127.0.0.1' |
SERVER_SOFTWARE | 'gunicorn/19.7.1' |
wsgi.url_scheme | 'http' |
HTTP_USER_AGENT | 'claudebot' |
PATH_INFO | '/en/research/the-natural-decomposition-approach/' |
HTTP_ACCEPT | '*/*' |
REMOTE_PORT | '52896' |
RAW_URI | '/en/research/the-natural-decomposition-approach/' |
gunicorn.socket | <socket.socket fd=10, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 8000), raddr=('127.0.0.1', 52896)> |
wsgi.multiprocess | False |
wsgi.file_wrapper | '' |
wsgi.multithread | False |
QUERY_STRING | '' |
HTTP_CONNECTION | 'close' |
wsgi.version | (1, 0) |
SERVER_PORT | '8000' |
SCRIPT_NAME | '' |
wsgi.run_once | False |
REQUEST_METHOD | 'GET' |
HTTP_X_REAL_IP | '44.192.38.143' |
REMOTE_ADDR | '127.0.0.1' |
HTTP_HOST | '127.0.0.1:8000' |
wsgi.input | <gunicorn.http.body.Body object at 0xb5afe3ac> |
unam.settings
Setting | Value |
---|---|
INSTALLED_APPS | ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'unam.apps.home', 'unam.apps.equipo_trabajo', 'unam.apps.lineas_investigacion', 'unam.apps.publicacion', 'unam.apps.software_databases', 'unam.apps.noticias', 'unam.apps.contacto', 'unam.apps.slider', 'unam.apps.carousel_logos', 'autoslug', 'django_summernote', 'parler', 'ckeditor', 'ckeditor_uploader', 'django_cleanup'] |
TEST_NON_SERIALIZED_APPS | [] |
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'] |
FORCE_SCRIPT_NAME | None |
SESSION_FILE_PATH | None |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
TEMPLATE_CONTEXT_PROCESSORS | ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'] |
FILE_UPLOAD_TEMP_DIR | None |
SECURE_PROXY_SSL_HEADER | None |
PARLER_DEFAULT_LANGUAGE_CODE | 'es' |
FILE_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
FIRST_DAY_OF_WEEK | 0 |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
LOGGING_CONFIG | 'logging.config.dictConfig' |
INTERNAL_IPS | [] |
CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
CSRF_COOKIE_PATH | '/' |
STATIC_ROOT | '/opt/statics/unam/' |
CACHE_MIDDLEWARE_SECONDS | 600 |
STATIC_URL | '/static/' |
TIME_ZONE | 'UTC' |
USE_THOUSAND_SEPARATOR | False |
MONTH_DAY_FORMAT | 'F j' |
CKEDITOR_UPLOAD_PATH | 'uploads/' |
STATICFILES_DIRS | ('/var/www/labunam/static',) |
EMAIL_PORT | 587 |
LOGOUT_URL | '/accounts/logout/' |
TEMPLATE_STRING_IF_INVALID | '' |
YEAR_MONTH_FORMAT | 'F Y' |
THOUSAND_SEPARATOR | ',' |
GOOGLE_RECAPTCHA_SECRET_KEY | '********************' |
EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
LANGUAGES | (('es', <django.utils.functional.lazy.<locals>.__proxy__ object at 0xb67e3e4c>), ('en', <django.utils.functional.lazy.<locals>.__proxy__ object at 0xb67e3eac>)) |
FILE_UPLOAD_DIRECTORY_PERMISSIONS | None |
SECURE_SSL_HOST | None |
EMAIL_USE_TLS | True |
FORMAT_MODULE_PATH | None |
ADMINS | [] |
SESSION_COOKIE_AGE | 1209600 |
BASE_DIR | '/var/www/labunam' |
USE_I18N | True |
TEMPLATE_LOADERS | ['django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader'] |
WSGI_APPLICATION | 'unam.wsgi.application' |
DISALLOWED_USER_AGENTS | [] |
SESSION_CACHE_ALIAS | 'default' |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
SETTINGS_MODULE | 'unam.settings' |
SECURE_HSTS_INCLUDE_SUBDOMAINS | False |
SECURE_BROWSER_XSS_FILTER | False |
SESSION_SERIALIZER | 'django.contrib.sessions.serializers.JSONSerializer' |
SECURE_HSTS_SECONDS | 0 |
CSRF_HEADER_NAME | 'HTTP_X_CSRFTOKEN' |
EMAIL_SSL_CERTFILE | None |
DEFAULT_CONTENT_TYPE | 'text/html' |
CACHE_MIDDLEWARE_ALIAS | 'default' |
LOGIN_REDIRECT_URL | '/accounts/profile/' |
SESSION_COOKIE_NAME | 'sessionid' |
TEMPLATE_DEBUG | False |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
DATETIME_FORMAT | 'N j, Y, P' |
SESSION_ENGINE | 'django.contrib.sessions.backends.db' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
IGNORABLE_404_URLS | [] |
SUMMERNOTE_CONFIG | {'attachment_filesize_limit': 16192576} |
MIGRATION_MODULES | {} |
FILE_UPLOAD_PERMISSIONS | None |
EMAIL_SSL_KEYFILE | '********************' |
SERVER_EMAIL | 'root@localhost' |
LOGIN_URL | '/accounts/login/' |
LANGUAGE_COOKIE_NAME | 'django_language' |
EMAIL_SUBJECT_PREFIX | '[Django] ' |
DEFAULT_TABLESPACE | '' |
DEFAULT_INDEX_TABLESPACE | '' |
DEBUG | True |
MEDIA_URL | '/media/' |
MIDDLEWARE_CLASSES | ['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.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] |
USE_L10N | True |
EMAIL_HOST_PASSWORD | '********************' |
SESSION_COOKIE_SECURE | False |
CKEDITOR_IMAGE_BACKEND | 'pillow' |
ALLOWED_INCLUDE_ROOTS | [] |
SOLID_I18N_PREFIX_STRICT | True |
DEBUG_PROPAGATE_EXCEPTIONS | False |
DECIMAL_SEPARATOR | '.' |
CSRF_TRUSTED_ORIGINS | [] |
LOGGING | {} |
LANGUAGE_CODE | 'es' |
USE_TZ | True |
SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
FILE_UPLOAD_HANDLERS | ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler'] |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
SECURE_SSL_REDIRECT | False |
CSRF_COOKIE_NAME | 'csrftoken' |
CSRF_COOKIE_AGE | 31449600 |
EMAIL_HOST_USER | 'scholatek.server@gmail.com' |
CSRF_COOKIE_HTTPONLY | False |
LANGUAGE_COOKIE_DOMAIN | None |
FILE_CHARSET | 'utf-8' |
LANGUAGES_BIDI | ['he', 'ar', 'fa', 'ur'] |
DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
TEST_RUNNER | 'django.test.runner.DiscoverRunner' |
TEMPLATE_DIRS | [] |
DEFAULT_FROM_EMAIL | 'webmaster@localhost' |
SECRET_KEY | '********************' |
USE_X_FORWARDED_HOST | False |
CSRF_COOKIE_DOMAIN | None |
FIXTURE_DIRS | [] |
USE_X_FORWARDED_PORT | False |
SESSION_SAVE_EVERY_REQUEST | False |
DATABASE_ROUTERS | [] |
LANGUAGE_COOKIE_PATH | '/' |
CSRF_COOKIE_SECURE | False |
PREPEND_WWW | False |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
MANAGERS | [] |
EMAIL_HOST | 'smtp.gmail.com' |
EMAIL_TIMEOUT | None |
DATE_FORMAT | 'N j, Y' |
TIME_FORMAT | 'P' |
DATABASES | {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': 'localhost', 'NAME': 'unam_db', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'unam'}} |
SESSION_COOKIE_PATH | '/' |
CKEDITOR_UPLOAD_SLUGIFY_FILENAME | False |
NUMBER_GROUPING | 0 |
SESSION_COOKIE_DOMAIN | None |
APPEND_SLASH | True |
CKEDITOR_CONFIGS | {'default': {'toolbar': None}} |
SHORT_DATE_FORMAT | 'm/d/Y' |
SECURE_CONTENT_TYPE_NOSNIFF | False |
LANGUAGE_COOKIE_AGE | None |
ABSOLUTE_URL_OVERRIDES | {} |
PASSWORD_HASHERS | '********************' |
SECURE_REDIRECT_EXEMPT | [] |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SESSION_COOKIE_HTTPONLY | True |
SILENCED_SYSTEM_CHECKS | [] |
ROOT_URLCONF | 'unam.urls' |
PARLER_LANGUAGES | {None: ({'code': 'es', 'fallbacks': [['es']], 'hide_untranslated': False}, {'code': 'en', 'fallbacks': [['es']], 'hide_untranslated': False}), 'default': {'code': 'es', 'fallbacks': [['es']], 'hide_untranslated': False}} |
DEFAULT_CHARSET | 'utf-8' |
X_FRAME_OPTIONS | 'SAMEORIGIN' |
ALLOWED_HOSTS | ['127.0.0.1'] |
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'] |
TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
USE_ETAGS | False |
EMAIL_USE_SSL | False |
MEDIA_ROOT | '/var/www/labunam/media' |
AUTH_PASSWORD_VALIDATORS | '********************' |
LOCALE_PATHS | ('/var/www/labunam/locale',) |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/www/labunam/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.core.context_processors.media', 'unam.context_processors.context_home', 'unam.context_processors.context_inve']}}] |
PASSWORD_RESET_TIMEOUT_DAYS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
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.