TypeError at /category/digital-goods/

join() argument must be str or bytes, not 'NoneType'
Request Method: GET
Request URL: https://genavehmall.com/category/digital-goods/?page=1
Django Version: 3.2
Exception Type: TypeError
Exception Value:
join() argument must be str or bytes, not 'NoneType'
Exception Location: /home2/gnvmalli/virtualenv/gnvmall/3.7/lib64/python3.7/genericpath.py, line 153, in _check_arg_types
Python Executable: /home2/gnvmalli/virtualenv/gnvmall/3.7/bin/python
Python Version: 3.7.16
Python Path:
['',
 '/home2/gnvmalli/gnvmall',
 '/home2/gnvmalli/virtualenv/gnvmall/3.7/lib64/python37.zip',
 '/home2/gnvmalli/virtualenv/gnvmall/3.7/lib64/python3.7',
 '/home2/gnvmalli/virtualenv/gnvmall/3.7/lib64/python3.7/lib-dynload',
 '/opt/alt/python37/lib64/python3.7',
 '/opt/alt/python37/lib/python3.7',
 '/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages']
Server time: Fri, 29 Mar 2024 02:49:01 +0430

Error during template rendering

In template /home2/gnvmalli/gnvmall/templates/partials/products.html, error at line 70

join() argument must be str or bytes, not 'NoneType'

60 {% for product in products %}
61 {% generateimage 'products:imagewebp' source=product.gallery_product.all.0.image as img %}
62 {% generateimage 'products:imagewebpmd' source=product.gallery_product.all.0.image as img_md %}
63 {% generateimage 'products:imagewebpsm' source=product.gallery_product.all.0.image as img_sm %}
64 <div class="product-item">
65 <div class="product product_filter">
66 <div class="product_image">
67 <a href= "{% url 'products:product_details' product.attributegroup.category.slug product.slug %}">
68 <picture>
69 <source media="(min-width: 900px)"
70 srcset="{{ img.url }}"
71 type="image/webp" >
72 <source media="(min-width: 601px)"
73 srcset="{{ img_md.url }}"
74 type="image/webp" >
75 <source media="(max-width: 600px)"
76 srcset="{{ img_sm.url }}"
77 type="image/webp" >
78 <img src="{{ product.gallery_product.all.0.image.url }}" type="image/jpeg" alt="{{ product.gallery_product.all.0.name }}">
79 </picture>
80 </a>

Traceback Switch to copy-and-paste view



Request information

USER

AnonymousUser

GET

Variable Value
page
'1'

POST

No POST data

FILES

No FILES data

No cookie data

META

Variable Value
HTTPS
'on'
HTTP_ACCEPT
'*/*'
HTTP_ACCEPT_ENCODING
'gzip, br'
HTTP_CDN_LOOP
'cloudflare'
HTTP_CF_CONNECTING_IP
'3.235.249.219'
HTTP_CF_IPCOUNTRY
'US'
HTTP_CF_RAY
'86bb57b7e97f2078-IAD'
HTTP_CF_VISITOR
'{"scheme":"https"}'
HTTP_CONNECTION
'Keep-Alive'
HTTP_HOST
'genavehmall.com'
HTTP_USER_AGENT
'claudebot'
HTTP_X_FORWARDED_FOR
'3.235.249.219'
HTTP_X_FORWARDED_PROTO
'https'
PATH_INFO
'/category/digital-goods/'
PROXY_REMOTE_ADDR
'172.71.223.64'
QUERY_STRING
'page=1'
REMOTE_ADDR
'3.235.249.219'
REMOTE_PORT
'31922'
REQUEST_METHOD
'GET'
REQUEST_SCHEME
'https'
REQUEST_URI
'/category/digital-goods/?page=1'
SCRIPT_NAME
''
SCRIPT_URI
'https://genavehmall.com/category/digital-goods/'
SCRIPT_URL
'/category/digital-goods/'
SERVER_ADDR
'88.99.137.77'
SERVER_ADMIN
'[email protected]'
SERVER_NAME
'genavehmall.com'
SERVER_PORT
'443'
SERVER_PROTOCOL
'HTTP/1.1'
SERVER_SOFTWARE
'LiteSpeed'
X-LSCACHE
'on'
_shell
'python'
_source
'source'
wsgi.errors
<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'>
wsgi.file_wrapper
<class 'lsapi_wsgi.FileWrapper'>
wsgi.input
<lsapi_wsgi.InputStream object at 0x7fa543ddc030>
wsgi.multiprocess
True
wsgi.multithread
False
wsgi.run_once
False
wsgi.url_scheme
'https'
wsgi.version
(1, 0)

Settings

Using settings module gnvmall.settings

Setting Value
ABSOLUTE_URL_OVERRIDES
{}
ADMINS
[]
ALLOWED_HOSTS
['88.99.137.77',
 'www.gnvmall.ir',
 'gnvmall.ir',
 'mail.gnvmall.ir',
 'www.mail.gnvmall.ir',
 'www.genavehmall.com',
 'genavehmall.com',
 'mail.genavehmall.com',
 'www.genavehmall.com']
ALLOW_UNICODE_SLUGS
True
APPEND_SLASH
True
AUTHENTICATION_BACKENDS
['django.contrib.auth.backends.ModelBackend']
AUTH_PASSWORD_VALIDATORS
'********************'
AUTH_USER_MODEL
'accounts.User'
BASE_DIR
PosixPath('/home2/gnvmalli/gnvmall')
CACHES
{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS
'default'
CACHE_MIDDLEWARE_KEY_PREFIX
'********************'
CACHE_MIDDLEWARE_SECONDS
600
CART_SESSION_ID
'cart'
CMS_TEMPLATES
(('cms.html', 'قالب مادر'),)
CSRF_COOKIE_AGE
31449600
CSRF_COOKIE_DOMAIN
None
CSRF_COOKIE_HTTPONLY
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
['88.99.137.77',
 'www.gnvmall.ir',
 'gnvmall.ir',
 'mail.gnvmall.ir',
 'www.mail.gnvmall.ir',
 'www.genavehmall.com',
 'genavehmall.com',
 'mail.genavehmall.com',
 'www.genavehmall.com']
CSRF_USE_SESSIONS
False
DATABASES
{'default': {'ATOMIC_REQUESTS': False,
             'AUTOCOMMIT': True,
             'CONN_MAX_AGE': 0,
             'ENGINE': 'django.db.backends.mysql',
             'HOST': 'localhost',
             'NAME': 'gnvmalli_final_db',
             'OPTIONS': {'charset': 'utf8mb4',
                         'init_command': 'SET storage_engine=INNODB;',
                         'sql_mode': 'traditional'},
             'PASSWORD': '********************',
             'PORT': 3306,
             'TEST': {'CHARSET': None,
                      'COLLATION': None,
                      'MIGRATE': True,
                      'MIRROR': None,
                      'NAME': None},
             'TIME_ZONE': None,
             'USER': 'gnvmalli_final_db'}}
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
'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL
'webmaster@localhost'
DEFAULT_HASHING_ALGORITHM
'sha256'
DEFAULT_INDEX_TABLESPACE
''
DEFAULT_TABLESPACE
''
DISALLOWED_USER_AGENTS
[]
DJANGO_CHECK_SEO_AUTH
{'pass': '********************', 'user': None}
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
FILER_IMAGE_MODEL
'filer.Image'
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
[]
IMAGEKIT_CACHEFILE_DIR
'CACHE/images'
IMAGEKIT_CACHEFILE_NAMER
'imagekit.cachefiles.namers.hash'
IMAGEKIT_CACHE_BACKEND
'default'
IMAGEKIT_CACHE_PREFIX
'imagekit:'
IMAGEKIT_CACHE_TIMEOUT
300
IMAGEKIT_DEFAULT_CACHEFILE_BACKEND
'imagekit.cachefiles.backends.Simple'
IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY
'imagekit.cachefiles.strategies.JustInTime'
IMAGEKIT_DEFAULT_FILE_STORAGE
'django.core.files.storage.FileSystemStorage'
IMAGEKIT_SPEC_CACHEFILE_NAMER
'imagekit.cachefiles.namers.source_name_as_path'
IMAGEKIT_USE_MEMCACHED_SAFE_CACHE_KEY
'********************'
INSTALLED_APPS
['djangocms_admin_style',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sites',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.sitemaps',
 'django.contrib.redirects',
 'block_ip',
 'django_jalali',
 'jalali_date',
 'rangefilter',
 'rangefilter2',
 'widget_tweaks',
 'debug_toolbar',
 'products.apps.ProductsConfig',
 'accounts.apps.AccountsConfig',
 'cart.apps.CartConfig',
 'gnv_scrapy.apps.GnvScrapyConfig',
 'background_task',
 'imagekit',
 'meta',
 'imagesitemaps',
 'treebeard',
 'menus',
 'sekizai',
 'cms',
 'djangocms_text_ckeditor',
 'django_check_seo',
 'djangocms_flash',
 'djangocms_googlemap',
 'djangocms_link',
 'djangocms_inherit',
 'djangocms_file',
 'djangocms_picture',
 'djangocms_teaser',
 'djangocms_video',
 'djangocms_snippet',
 'djangocms_page_meta',
 'reversion',
 'aldryn_apphooks_config',
 'aldryn_categories',
 'aldryn_common',
 'aldryn_newsblog',
 'aldryn_people',
 'parler',
 'sortedm2m',
 'taggit',
 'easy_thumbnails',
 'filer',
 'mptt',
 'django_tgbot',
 'mamali_channel_assist_bot']
INTERNAL_IPS
{'127.0.0.1'}
JALALI_DATE_DEFAULTS
{'Static': {'css': {'all': ['admin/jquery.ui.datepicker.jalali/themes/base/jquery-ui.min.css']},
            'js': []},
 'Strftime': {'date': '%y/%m/%d', 'datetime': '%H:%M:%S  %y/%m/%d'}}
KAVENEGAR_API
'********************'
LANGUAGES
[('fa-ir', 'fa-ir')]
LANGUAGES_BIDI
['he', 'ar', 'ar-dz', 'fa', 'ur']
LANGUAGE_CODE
'fa-ir'
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
{}
LOGGING_CONFIG
'logging.config.dictConfig'
LOGIN_REDIRECT_URL
'/accounts/profile/'
LOGIN_UR
'/accounts/dashboard/'
LOGIN_URL
'/accounts/login/'
LOGOUT_REDIRECT_URL
None
MANAGERS
[]
MAX_ATTEMPTS
5
MAX_RUN_TIME
120
MEDIA_ROOT
PosixPath('/home2/gnvmalli/public_html/media')
MEDIA_URL
'/media/'
MERCHANT_ID
'56613efd-7b79-4c1d-8bcf-40ef46a1cc21'
MESSAGE_STORAGE
'django.contrib.messages.storage.fallback.FallbackStorage'
MESSAGE_TAGS
{10: 'alert-info',
 20: 'alert-info',
 25: 'alert-success',
 30: 'alert-warning',
 40: 'alert-danger'}
META_FB_TYPE
'Website'
META_IMAGE_URL
'https://genavehmall.com/static/e-commerce/images/gnvmall-logo.png'
META_SCHEMAORG_TYPE
'Website'
META_SITE_DOMAIN
'www.genavehmall.com'
META_SITE_NAME
'گناوه مال'
META_SITE_PROTOCOL
'https'
META_SITE_TYPE
'Website'
META_TWITTER_AUTHOR
'Mohammad Rostami'
META_TWITTER_SITE
'genavehmall'
META_TWITTER_TYPE
'Website'
META_USE_OG_PROPERTIES
True
META_USE_SCHEMAORG_PROPERTIES
True
META_USE_TITLE_TAG
True
META_USE_TWITTER_PROPERTIES
True
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',
 'django.middleware.locale.LocaleMiddleware',
 'block_ip.middleware.BlockIPMiddleware',
 'cms.middleware.user.CurrentUserMiddleware',
 'cms.middleware.page.CurrentPageMiddleware',
 'cms.middleware.toolbar.ToolbarMiddleware',
 'cms.middleware.language.LanguageCookieMiddleware',
 'cms.middleware.utils.ApphookReloadMiddleware',
 'debug_toolbar.middleware.DebugToolbarMiddleware',
 'accounts.middleware.InstagramMiddleware',
 'accounts.middleware.FixUrlMiddleware',
 'accounts.middleware.CustomRedirectFallbackMiddleware']
MIGRATION_MODULES
{}
MONTH_DAY_FORMAT
'F j'
NUMBER_GROUPING
0
PASSWORD_HASHERS
'********************'
PASSWORD_RESET_TIMEOUT
'********************'
PASSWORD_RESET_TIMEOUT_DAYS
'********************'
PREPEND_WWW
False
ROOT_DIR
PosixPath('/home2/gnvmalli')
ROOT_URLCONF
'gnvmall.urls'
RSA_PATH
PosixPath('/home2/gnvmalli/gnvmall/gnvmall')
SANDBOX
False
SECRET_KEY
'********************'
SECURE_BROWSER_XSS_FILTER
False
SECURE_CONTENT_TYPE_NOSNIFF
True
SECURE_HSTS_INCLUDE_SUBDOMAINS
False
SECURE_HSTS_PRELOAD
False
SECURE_HSTS_SECONDS
0
SECURE_PROXY_SSL_HEADER
('HTTP_X_FORWARDED_PROTO', 'https')
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
'gnvmall.settings'
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
[PosixPath('/home2/gnvmalli/gnvmall/static')]
STATICFILES_FINDERS
('django.contrib.staticfiles.finders.FileSystemFinder',
 'django.contrib.staticfiles.finders.AppDirectoriesFinder')
STATICFILES_STORAGE
'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT
PosixPath('/home2/gnvmalli/public_html/static')
STATIC_URL
'/static/'
TEBUG_TOOLBAR_CONFIG
{'SHOW_TOOLBAR_CALLBACK': <function <lambda> at 0x7fa5579ab830>}
TEMPLATES
[{'BACKEND': 'django.template.backends.django.DjangoTemplates',
  'DIRS': [PosixPath('/home2/gnvmalli/gnvmall/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',
                                     'cart.context_processors.cart',
                                     'sekizai.context_processors.sekizai',
                                     'cms.context_processors.cms_settings',
                                     'django.template.context_processors.i18n'],
              'libraries': {'customtags': 'products.templatetags.customtags'},
              'loaders': [('django.template.loaders.cached.Loader',
                           ['django.template.loaders.filesystem.Loader',
                            'django.template.loaders.app_directories.Loader'])]}}]
TEMPLATES_DIR
PosixPath('/home2/gnvmalli/gnvmall/templates')
TEST_NON_SERIALIZED_APPS
[]
TEST_RUNNER
'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR
','
THUMBNAIL_PROCESSORS
('easy_thumbnails.processors.colorspace',
 'easy_thumbnails.processors.autocrop',
 'filer.thumbnail_processors.scale_and_crop_with_subject_location',
 'easy_thumbnails.processors.filters',
 'easy_thumbnails.processors.background')
TIME_FORMAT
'P'
TIME_INPUT_FORMATS
['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE
'Asia/Tehran'
USE_I18N
True
USE_L10N
True
USE_THOUSAND_SEPARATOR
False
USE_TZ
False
USE_X_FORWARDED_HOST
True
USE_X_FORWARDED_PORT
False
WSGI_APPLICATION
'gnvmall.wsgi.application'
X_FRAME_OPTIONS
('SAMEORIGIN; ALLOW-FROM https://www.trustseal.enamad.ir/; ALLOW-FROM '
 'https://www.enamad.ir/;')
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.