TypeError at /en/activities_gallery/gallery/

Population must be a sequence.  For dicts or sets, use sorted(d).
Request Method: GET
Request URL: http://wafafertilizer.org/en/activities_gallery/gallery/
Django Version: 4.1.5
Exception Type: TypeError
Exception Value:
Population must be a sequence.  For dicts or sets, use sorted(d).
Exception Location: /app/.heroku/python/lib/python3.11/random.py, line 436, in sample
Raised during: photologue.views.GalleryArchiveIndexView
Python Executable: /app/.heroku/python/bin/python
Python Version: 3.11.1
Python Path:
['/app/.heroku/python/bin',
 '/app',
 '/app/.heroku/python/lib/python311.zip',
 '/app/.heroku/python/lib/python3.11',
 '/app/.heroku/python/lib/python3.11/lib-dynload',
 '/app/.heroku/python/lib/python3.11/site-packages']
Server time: Tue, 19 Mar 2024 08:24:16 +0000

Error during template rendering

In template /app/wafa/templates/photologue/includes/gallery_sample.html, error at line 8

Population must be a sequence. For dicts or sets, use sorted(d).

1 {% load i18n %}
2
3 <article class="col-md-3 portfolio-item pf-{{ gallery.date_added|date:"Y" }} pf-illustrations">
4 <div class="portfolio-image">
5 <div class="fslider" data-arrows="false" data-speed="400" data-pause="4000">
6 <div class="flexslider">
7 <div class="slider-wrap">
8 {% for photo in gallery.sample %}
9 <div class="slide">
10 <a href="{{ photo.get_absolute_url }}">
11 <img src="{{ photo.image.url }}" alt="{{ photo.title }}"></a>
12 </div>
13 {% endfor %}
14 </div>
15 </div>
16 </div>
17 <div class="portfolio-overlay" data-lightbox="gallery">
18

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
HTTP_ACCEPT
'*/*'
HTTP_ACCEPT_ENCODING
'gzip'
HTTP_CDN_LOOP
'cloudflare'
HTTP_CF_CONNECTING_IP
'54.157.61.194'
HTTP_CF_IPCOUNTRY
'US'
HTTP_CF_RAY
'866c10ad685f396a-IAD'
HTTP_CF_VISITOR
'{"scheme":"http"}'
HTTP_CONNECTION
'close'
HTTP_CONNECT_TIME
'0'
HTTP_HOST
'wafafertilizer.org'
HTTP_REFERER
'http://wafafertilizer.org/en/activities_gallery/'
HTTP_TOTAL_ROUTE_TIME
'0'
HTTP_USER_AGENT
'claudebot'
HTTP_VIA
'1.1 vegur'
HTTP_X_FORWARDED_FOR
'54.157.61.194, 172.70.38.60'
HTTP_X_FORWARDED_PORT
'80'
HTTP_X_FORWARDED_PROTO
'http'
HTTP_X_REQUEST_ID
'ff846bb9-5de1-4ebe-90d3-4bcce174090b'
HTTP_X_REQUEST_START
'1710836656235'
PATH_INFO
'/en/activities_gallery/gallery/'
QUERY_STRING
''
RAW_URI
'/en/activities_gallery/gallery/'
REMOTE_ADDR
'10.1.10.81'
REMOTE_PORT
'33235'
REQUEST_METHOD
'GET'
SCRIPT_NAME
''
SERVER_NAME
'0.0.0.0'
SERVER_PORT
'12448'
SERVER_PROTOCOL
'HTTP/1.1'
SERVER_SOFTWARE
'gunicorn/20.1.0'
gunicorn.socket
<socket.socket fd=11, family=2, type=1, proto=0, laddr=('172.18.140.194', 12448), raddr=('10.1.10.81', 33235)>
wsgi.errors
<gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7fa4ab52feb0>
wsgi.file_wrapper
<class 'gunicorn.http.wsgi.FileWrapper'>
wsgi.input
<gunicorn.http.body.Body object at 0x7fa4ab573290>
wsgi.input_terminated
True
wsgi.multiprocess
True
wsgi.multithread
False
wsgi.run_once
False
wsgi.url_scheme
'http'
wsgi.version
(1, 0)

Settings

Using settings module wafa.settings.production

Setting Value
ABSOLUTE_URL_OVERRIDES
{}
ADMINS
[]
ALLOWED_HOSTS
['.herokuapp.com', 'wafafertilizer.org', 'www.wafafertilizer.org']
APPEND_SLASH
True
AUTHENTICATION_BACKENDS
['django.contrib.auth.backends.ModelBackend']
AUTH_PASSWORD_VALIDATORS
'********************'
AUTH_USER_MODEL
'auth.User'
AWS_ACCESS_KEY_ID
'********************'
AWS_DEFAULT_ACL
'public-read'
AWS_S3_CUSTOM_DOMAIN
'wafa-assets.s3.amazonaws.com'
AWS_SECRET_ACCESS_KEY
'********************'
AWS_STORAGE_BUCKET_NAME
'wafa-assets'
BASE_DIR
'/app'
BASE_URL
'http://wafafertilizer.org'
CACHES
{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS
'default'
CACHE_MIDDLEWARE_KEY_PREFIX
'********************'
CACHE_MIDDLEWARE_SECONDS
600
COMPRESSORS
{'css': 'compressor.css.CssCompressor', 'js': 'compressor.js.JsCompressor'}
COMPRESS_CACHEABLE_PRECOMPILERS
()
COMPRESS_CACHE_BACKEND
'default'
COMPRESS_CACHE_KEY_FUNCTION
'********************'
COMPRESS_CLEAN_CSS_ARGUMENTS
''
COMPRESS_CLEAN_CSS_BINARY
'cleancss'
COMPRESS_CLOSURE_COMPILER_ARGUMENTS
''
COMPRESS_CLOSURE_COMPILER_BINARY
'java -jar compiler.jar'
COMPRESS_CSS_HASHING_METHOD
'mtime'
COMPRESS_DATA_URI_MAX_SIZE
1024
COMPRESS_DEBUG_TOGGLE
None
COMPRESS_ENABLED
False
COMPRESS_FILTERS
{'css': ['compressor.filters.css_default.CssAbsoluteFilter',
         'compressor.filters.cssmin.rCSSMinFilter'],
 'js': ['compressor.filters.jsmin.rJSMinFilter']}
COMPRESS_JINJA2_GET_ENVIRONMENT
<function CompressorConf.JINJA2_GET_ENVIRONMENT at 0x7fa4ad901260>
COMPRESS_MINT_DELAY
30
COMPRESS_MTIME_DELAY
10
COMPRESS_OFFLINE
False
COMPRESS_OFFLINE_CONTEXT
{'STATIC_URL': '/static/'}
COMPRESS_OFFLINE_MANIFEST
'manifest.json'
COMPRESS_OFFLINE_MANIFEST_STORAGE
'compressor.storage.OfflineManifestFileStorage'
COMPRESS_OFFLINE_TIMEOUT
31536000
COMPRESS_OUTPUT_DIR
'CACHE'
COMPRESS_PARSER
'compressor.parser.AutoSelectParser'
COMPRESS_PRECOMPILERS
()
COMPRESS_REBUILD_TIMEOUT
2592000
COMPRESS_ROOT
'/app/static'
COMPRESS_STORAGE
'compressor.storage.CompressorFileStorage'
COMPRESS_TEMPLATE_FILTER_CONTEXT
{'STATIC_URL': '/static/'}
COMPRESS_URL
'/static/'
COMPRESS_URL_PLACEHOLDER
'/__compressor_url_placeholder__/'
COMPRESS_VERBOSE
False
COMPRESS_YUGLIFY_BINARY
'yuglify'
COMPRESS_YUGLIFY_CSS_ARGUMENTS
'--terminal'
COMPRESS_YUGLIFY_JS_ARGUMENTS
'--terminal'
COMPRESS_YUI_BINARY
'java -jar yuicompressor.jar'
COMPRESS_YUI_CSS_ARGUMENTS
''
COMPRESS_YUI_JS_ARGUMENTS
''
CONTACT_EMAIL
'[email protected]'
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
[]
CSRF_USE_SESSIONS
False
DATABASES
{'default': {'ATOMIC_REQUESTS': False,
             'AUTOCOMMIT': True,
             'CONN_HEALTH_CHECKS': False,
             'CONN_MAX_AGE': 0,
             'ENGINE': 'django.db.backends.postgresql',
             'HOST': 'ec2-54-82-205-3.compute-1.amazonaws.com',
             'NAME': 'd1rbqs08m45ccq',
             'OPTIONS': {},
             'PASSWORD': '********************',
             'PORT': 5432,
             'TEST': {'CHARSET': None,
                      'COLLATION': None,
                      'MIGRATE': True,
                      'MIRROR': None,
                      'NAME': None},
             'TIME_ZONE': None,
             'USER': 'ygbjnbsztnysno'}}
DATABASE_ROUTERS
[]
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',
 '%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
'storages.backends.s3boto3.S3Boto3Storage'
DEFAULT_FROM_EMAIL
'webmaster@localhost'
DEFAULT_INDEX_TABLESPACE
''
DEFAULT_TABLESPACE
''
DISALLOWED_USER_AGENTS
[]
EMAIL_BACKEND
'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST
'smtp.wafafertilizer.org'
EMAIL_HOST_PASSWORD
'********************'
EMAIL_HOST_USER
'[email protected]'
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
False
EVENT_AS_PLUGIN
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'
IGNORABLE_404_URLS
[]
INSTALLED_APPS
['wagtail.contrib.forms',
 'wagtail.contrib.redirects',
 'wagtail.embeds',
 'wagtail.sites',
 'wagtail.users',
 'wagtail.snippets',
 'wagtail.documents',
 'wagtail.images',
 'wagtail.search',
 'wagtail.admin',
 'wagtail',
 'wagtail.contrib.sitemaps',
 'wagtail.contrib.routable_page',
 'compressor',
 'modelcluster',
 'django_social_share',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'location_field.apps.DefaultConfig',
 'puput',
 'contact',
 'home',
 'search',
 'wafa',
 'event',
 'taggit',
 'storages',
 'advertising',
 'photologue',
 'sortedm2m']
INTERNAL_IPS
[]
LANGUAGES
(('fr', 'Français'), ('en', 'English'))
LANGUAGES_BIDI
['he', 'ar', 'ar-dz', 'fa', 'ur']
LANGUAGE_CODE
'en'
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/locale/',)
LOCATION_FIELD
{'map.provider': 'google',
 'map.zoom': 13,
 'provider.google.api': '********************',
 'provider.google.api_key': '********************',
 'provider.google.map_type': 'ROADMAP',
 'provider.mapbox.access_token': '********************',
 'provider.mapbox.id': 'mapbox.streets',
 'provider.mapbox.max_zoom': 18,
 'provider.openstreetmap.max_zoom': 18,
 'resources.media': {'js': ['/static/location_field/js/form.js']},
 'resources.root_path': '/static/location_field',
 'search.provider': 'google',
 'search.suffix': ''}
LOGGING
{}
LOGGING_CONFIG
'logging.config.dictConfig'
LOGIN_REDIRECT_URL
'/accounts/profile/'
LOGIN_URL
'/accounts/login/'
LOGOUT_REDIRECT_URL
None
MANAGERS
[]
MEDIA_ROOT
'/app/media'
MEDIA_URL
'https://wafa-assets.s3.amazonaws.com/'
MESSAGE_STORAGE
'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE
['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.middleware.security.SecurityMiddleware',
 'wagtail.contrib.legacy.sitemiddleware.SiteMiddleware',
 'wagtail.contrib.redirects.middleware.RedirectMiddleware',
 'whitenoise.middleware.WhiteNoiseMiddleware',
 'django.middleware.locale.LocaleMiddleware']
MIGRATION_MODULES
{}
MONTH_DAY_FORMAT
'F j'
NUMBER_GROUPING
0
PASSWORD_HASHERS
'********************'
PASSWORD_RESET_TIMEOUT
'********************'
PREPEND_WWW
False
PROJECT_DIR
'/app/wafa'
PUPUT_AS_PLUGIN
True
ROOT_URLCONF
'wafa.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
'wafa.settings.production'
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/wafa/static']
STATICFILES_FINDERS
['django.contrib.staticfiles.finders.FileSystemFinder',
 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATICFILES_STORAGE
'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT
'/app/static'
STATIC_URL
'/static/'
TEMPLATES
[{'APP_DIRS': True,
  'BACKEND': 'django.template.backends.django.DjangoTemplates',
  'DIRS': ['/app/wafa/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']}}]
TEMPLATE_CONTEXT_PROCESSORS
('django.core.context_processors.request',)
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_THOUSAND_SEPARATOR
False
USE_TZ
True
USE_X_FORWARDED_HOST
False
USE_X_FORWARDED_PORT
False
WAGTAIL_SITE_NAME
'wafa'
WSGI_APPLICATION
'wafa.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.