'items'
Request Method: | GET |
---|---|
Request URL: | https://marketstorer.ru/shop/pleer-ru.html |
Django Version: | 4.2.5 |
Exception Type: | KeyError |
Exception Value: | 'items' |
Exception Location: | /home/www/code/market/marketstorer/magaz/views.py, line 75, in shop_cat_1 |
Raised during: | magaz.views.MagazDetailView |
Python Executable: | /home/www/code/market/env/bin/python3.11 |
Python Version: | 3.11.1 |
Python Path: | ['/home/www/code/market/marketstorer', '/home/www/code/market/env/bin', '/home/www/.python/lib/python311.zip', '/home/www/.python/lib/python3.11', '/home/www/.python/lib/python3.11/lib-dynload', '/home/www/code/market/env/lib/python3.11/site-packages', '/home/www/code/market/env/lib/python3.11/site-packages/odf', '/home/www/code/market/env/lib/python3.11/site-packages/odf', '/home/www/code/market/env/lib/python3.11/site-packages/odf', '/home/www/code/market/env/lib/python3.11/site-packages/odf', '/home/www/code/market/env/lib/python3.11/site-packages/odf', '/home/www/code/market/env/lib/python3.11/site-packages/odf', '/home/www/code/market/env/lib/python3.11/site-packages/odf'] |
Server time: | Thu, 28 Mar 2024 13:19:36 +0000 |
/home/www/code/market/env/lib/python3.11/site-packages/django/core/handlers/exception.py
, line 55, in inner
return inner
else:
@wraps(get_response)
def inner(request):
try:
response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^…
except Exception as exc:
response = response_for_exception(request, exc)
return response
return inner
Variable | Value |
---|---|
exc | KeyError('items') |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0xffffaf877650>> |
request | <WSGIRequest: GET '/shop/pleer-ru.html'> |
/home/www/code/market/env/lib/python3.11/site-packages/django/core/handlers/base.py
, line 197, in _get_response
if response is None:
wrapped_callback = self.make_view_atomic(callback)
# If it is an asynchronous view, run it in a subthread.
if iscoroutinefunction(wrapped_callback):
wrapped_callback = async_to_sync(wrapped_callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
except Exception as e:
response = self.process_exception_by_middleware(e, request)
if response is None:
raise
# Complain if the view returned None (a common error).
Variable | Value |
---|---|
callback | <function View.as_view.<locals>.view at 0xffffae7253a0> |
callback_args | () |
callback_kwargs | {'slug': 'pleer-ru'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>> |
request | <WSGIRequest: GET '/shop/pleer-ru.html'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0xffffaf877650> |
wrapped_callback | <function View.as_view.<locals>.view at 0xffffae7253a0> |
/home/www/code/market/env/lib/python3.11/site-packages/django/views/generic/base.py
, line 104, in view
self = cls(**initkwargs)
self.setup(request, *args, **kwargs)
if not hasattr(self, "request"):
raise AttributeError(
"%s instance has no 'request' attribute. Did you override "
"setup() and forget to call super()?" % cls.__name__
)
return self.dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
view.view_class = cls
view.view_initkwargs = initkwargs
# __name__ and __qualname__ are intentionally left unchanged as
# view_class should be used to robustly determine the name of the view
Variable | Value |
---|---|
args | () |
cls | <class 'magaz.views.MagazDetailView'> |
initkwargs | {} |
kwargs | {'slug': 'pleer-ru'} |
request | <WSGIRequest: GET '/shop/pleer-ru.html'> |
self | <magaz.views.MagazDetailView object at 0xffff8719b310> |
/home/www/code/market/env/lib/python3.11/site-packages/django/views/generic/base.py
, line 143, in dispatch
# 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,
Variable | Value |
---|---|
args | () |
handler | <bound method BaseDetailView.get of <magaz.views.MagazDetailView object at 0xffff8719b310>> |
kwargs | {'slug': 'pleer-ru'} |
request | <WSGIRequest: GET '/shop/pleer-ru.html'> |
self | <magaz.views.MagazDetailView object at 0xffff8719b310> |
/home/www/code/market/env/lib/python3.11/site-packages/django/views/generic/detail.py
, line 109, 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
template_name_suffix = "_detail"
Variable | Value |
---|---|
args | () |
kwargs | {'slug': 'pleer-ru'} |
request | <WSGIRequest: GET '/shop/pleer-ru.html'> |
self | <magaz.views.MagazDetailView object at 0xffff8719b310> |
/home/www/code/market/marketstorer/magaz/views.py
, line 83, in get_context_data
context["shop_cat_1"] = shop_cat_1
return shop_cat_1
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.run_until_complete(shop_cat_1()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
if len(magaz_cats_rand) > 2:
Variable | Value |
---|---|
__class__ | <class 'magaz.views.MagazDetailView'> |
cats | <TreeQuerySet [<Category: Каталог>, <Category: Автотовары>, <Category: Авто аккумуляторы>, <Category: Аккумуляторы авто и мото>, <Category: Аккумуляторы автомобильные низкие>, <Category: Аккумуляторы автомобильные стартерные>, <Category: Аккумуляторы для грузовиков>, <Category: Аккумуляторы для детского электромобиля >, <Category: Аккумуляторы для электромобилей>, <Category: Аккумуляторы легковые>, <Category: Аккумуляторы обратной полярности>, <Category: Аккумуляторы прямой полярности>, <Category: Аккумуляторы старт-стоп>, <Category: Гелевые автомобильные аккумуляторы>, <Category: Гибридные аккумуляторы>, <Category: Зарядное устройство 24 вольта>, <Category: Зарядные устройства для автомобильных аккумуляторов>, <Category: Зарядные устройства для автомобиля>, <Category: Зарядные устройства для детского электромобиля>, <Category: Необслуживаемые аккумуляторы автомобильные>, '...(remaining elements truncated)...']> |
context | {'brands_all': <QuerySet [<Magaz: 101 чай>, <Magaz: 12 Storeez>, <Magaz: 123 Ru>, <Magaz: 220city>, <Magaz: 9 Монахов>, <Magaz: Adria>, <Magaz: Aero>, <Magaz: Aim Clo>, <Magaz: Aizel>, <Magaz: Akbmag>, <Magaz: AllTime>, <Magaz: Allrad>, <Magaz: Allsoft Ru>, <Magaz: AmerSport>, <Magaz: Atlas For Men>, <Magaz: Axor>, <Magaz: Barfits>, <Magaz: Bbcream ru>, <Magaz: BeCompact>, <Magaz: Bestwatch>, '...(remaining elements truncated)...']>, 'counted': 10, 'magaz': <Magaz: Плеер Ру>, 'object': <Magaz: Плеер Ру>, 'shop_cat_1_name': 'Hi-Fi', 'view': <magaz.views.MagazDetailView object at 0xffff8719b310>} |
kwargs | {'object': <Magaz: Плеер Ру>} |
loop | <_UnixSelectorEventLoop running=False closed=False debug=False> |
magaz_cats_rand | ['Hi-Fi', ' Dj', ' ТВ', ' Автотовар', ' Акустические системы', ' колонки', ' Всё для геймеров', ' Защита от собак', ' грызунов', ' насекомых...'] |
magazin | <QuerySet [<Magaz: 101 чай>, <Magaz: 12 Storeez>, <Magaz: 123 Ru>, <Magaz: 220city>, <Magaz: 9 Монахов>, <Magaz: Adria>, <Magaz: Aero>, <Magaz: Aim Clo>, <Magaz: Aizel>, <Magaz: Akbmag>, <Magaz: AllTime>, <Magaz: Allrad>, <Magaz: Allsoft Ru>, <Magaz: AmerSport>, <Magaz: Atlas For Men>, <Magaz: Axor>, <Magaz: Barfits>, <Magaz: Bbcream ru>, <Magaz: BeCompact>, <Magaz: Bestwatch>, '...(remaining elements truncated)...']> |
obj | <Magaz: Плеер Ру> |
self | <magaz.views.MagazDetailView object at 0xffff8719b310> |
shop_cat_1 | <function MagazDetailView.get_context_data.<locals>.shop_cat_1 at 0xffff9dfc8400> |
shop_cat_1_name | 'Hi-Fi' |
/home/www/.python/lib/python3.11/asyncio/base_events.py
, line 653, in run_until_complete
future.exception()
raise
finally:
future.remove_done_callback(_run_until_complete_cb)
if not future.done():
raise RuntimeError('Event loop stopped before Future completed.')
return future.result() ^^^^^^^^^^^^^^^…
def stop(self):
"""Stop running the event loop.
Every callback already scheduled will still run. This simply informs
run_forever to stop looping after a complete iteration.
Variable | Value |
---|---|
future | <Task finished name='Task-209445' coro=<MagazDetailView.get_context_data.<locals>.shop_cat_1() done, defined at /home/www/code/market/marketstorer/magaz/views.py:64> exception=KeyError('items')> |
new_task | True |
self | <_UnixSelectorEventLoop running=False closed=False debug=False> |
/home/www/code/market/marketstorer/magaz/views.py
, line 75, in shop_cat_1
async with aiohttp.ClientSession() as session:
async with session.get(url, headers=headers, timeout=4) as response:
shop_cat_1 = await response.text()
shop_cat_1 = json.loads(shop_cat_1)
shop_cat_1 = shop_cat_1['items'] ^^^^^^^^^^^^^^^^^^^…
context["shop_cat_1"] = shop_cat_1
return shop_cat_1
loop = asyncio.new_event_loop()
Variable | Value |
---|---|
context | {'brands_all': <QuerySet [<Magaz: 101 чай>, <Magaz: 12 Storeez>, <Magaz: 123 Ru>, <Magaz: 220city>, <Magaz: 9 Монахов>, <Magaz: Adria>, <Magaz: Aero>, <Magaz: Aim Clo>, <Magaz: Aizel>, <Magaz: Akbmag>, <Magaz: AllTime>, <Magaz: Allrad>, <Magaz: Allsoft Ru>, <Magaz: AmerSport>, <Magaz: Atlas For Men>, <Magaz: Axor>, <Magaz: Barfits>, <Magaz: Bbcream ru>, <Magaz: BeCompact>, <Magaz: Bestwatch>, '...(remaining elements truncated)...']>, 'counted': 10, 'magaz': <Magaz: Плеер Ру>, 'object': <Magaz: Плеер Ру>, 'shop_cat_1_name': 'Hi-Fi', 'view': <magaz.views.MagazDetailView object at 0xffff8719b310>} |
headers | {'Authorization': '0K5YIDGFhKpohFnX5IjGUYAhvs27iW'} |
response | <ClientResponse(https://api.content.market.yandex.ru/v3/affiliate/search?text=Hi-Fi&geo_id=213&clid=3150662&erid=4CQwVszL78EMgDFNpPq&fields=MODEL_PRICE,MODEL_RATING,MODEL_DEFAULT_OFFER,MODEL_MEDIA,OFFER_PHOTO,OFFER_DELIVERY&count=20) [500 Server Error]> <CIMultiDictProxy('Set-Cookie': 'i=VG+0X3RZ9vMIR0+01IpWuKsMRuOrBMEEt03qTiWxZ701p62PkscZZpMaPEmdM8MoBDydv/tHiWfNcYoBCyZhpK3FeCM=; Expires=Sat, 28-Mar-2026 13:19:36 GMT; Domain=.yandex.ru; Path=/; Secure; HttpOnly', 'Set-Cookie': 'yandexuid=6400796071711631976; Expires=Sat, 28-Mar-2026 13:19:36 GMT; Domain=.yandex.ru; Path=/; Secure', 'Strict-Transport-Security': 'max-age=31536000', 'Transfer-Encoding': 'chunked', 'Cache-Control': 'no-store', 'Content-Language': 'en-US', 'Content-Type': 'application/json;charset=utf-8', 'Date': 'Thu, 28 Mar 2024 13:19:36 GMT', 'x-market-req-id': '1711631976730/a534b96e0ef7002c448ef55fb8140600', 'x-ratelimit-daily-limit': '800000', 'x-ratelimit-daily-remaining': '800001', 'x-ratelimit-daily-until': 'Fri, 29 Mar 2024 00:00:00 GMT', 'x-ratelimit-global-limit': '5', 'x-ratelimit-global-remaining': '6', 'x-ratelimit-global-until': 'Thu, 28 Mar 2024 13:19:37 GMT', 'x-ratelimit-method-limit': '5', 'x-ratelimit-method-remaining': '6', 'x-ratelimit-method-until': 'Thu, 28 Mar 2024 13:19:37 GMT', 'x-region-id': '213', 'x-request-id': 'vzsdg3io3qjyrtmj3x0008103288531f77b')> |
session | <aiohttp.client.ClientSession object at 0xffff8719aa90> |
shop_cat_1 | {'context': {'currency': {'id': 'RUR', 'name': 'руб.'}, 'id': '1711631976730/a534b96e0ef7002c448ef55fb8140600/1', 'marketUrl': 'https://market.yandex.ru?pp=929&clid=3150662&mclid=1003&distr_type=7&erid=4CQwVszL78EMgDFNpPq', 'region': {'childCount': 14, 'coordinates': {'latitude': 55.755863, 'longitude': 37.6177}, 'country': {'childCount': 11, 'id': 225, 'name': 'Россия', 'type': 'COUNTRY'}, 'id': 213, 'name': 'Москва', 'type': 'CITY'}, 'time': '2024-03-28T16:19:36.795+03:00'}, 'errors': [{'message': 'Internal error'}], 'status': 'ERROR'} |
shop_cat_1_name | 'Hi-Fi' |
url | 'https://api.content.market.yandex.ru/v3/affiliate/search?text=Hi-Fi&geo_id=213&clid=3150662&erid=4CQwVszL78EMgDFNpPq&fields=MODEL_PRICE,MODEL_RATING,MODEL_DEFAULT_OFFER,MODEL_MEDIA,OFFER_PHOTO,OFFER_DELIVERY&count=20' |
AnonymousUser
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
HTTP_ACCEPT | '*/*' |
HTTP_CONNECTION | 'close' |
HTTP_HOST | 'marketstorer.ru' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_X_FORWARDED_FOR | '3.230.76.153' |
HTTP_X_FORWARDED_PROTO | 'https' |
HTTP_X_REAL_IP | '3.230.76.153' |
PATH_INFO | '/shop/pleer-ru.html' |
QUERY_STRING | '' |
RAW_URI | '/shop/pleer-ru.html' |
REMOTE_ADDR | '' |
REQUEST_METHOD | 'GET' |
SCRIPT_NAME | '' |
SERVER_NAME | 'marketstorer.ru' |
SERVER_PORT | '443' |
SERVER_PROTOCOL | 'HTTP/1.1' |
SERVER_SOFTWARE | 'gunicorn/21.2.0' |
gunicorn.socket | <socket.socket fd=3, family=1, type=1, proto=0, laddr=/home/www/code/market/gunicorn/gunicorn.sock> |
wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0xffffac6254b0> |
wsgi.file_wrapper | <class 'gunicorn.http.wsgi.FileWrapper'> |
wsgi.input | <gunicorn.http.body.Body object at 0xffff87199210> |
wsgi.input_terminated | True |
wsgi.multiprocess | True |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'https' |
wsgi.version | (1, 0) |
marketstorer.settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ALLOWED_HOSTS | ['80.87.196.205', 'marketstorer.ru'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
BASE_DIR | PosixPath('/home/www/code/market/marketstorer') |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.redis.RedisCache', 'KEY_PREFIX': '********************', 'LOCATION': 'redis://127.0.0.1:6379/1', 'TIMEOUT': 900}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
CKEDITOR_CONFIGS | {'default': {'allowedContent': True, 'skin': 'moono', 'toolbar': 'Custom', 'toolbar_Custom': [['Bold', 'Italic', 'Underline'], ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'], ['Link', 'Unlink'], ['RemoveFormat', 'Source'], ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo'], ['Styles', 'Format', 'Font', 'FontSize']]}} |
CKEDITOR_UPLOAD_PATH | 'uploads/' |
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://*.marketstorer.ru'] |
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': '127.0.0.1', 'NAME': 'storer', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '5432', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'storerdmin'}} |
DATABASE_ROUTERS | [] |
DATA_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 |
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.BigAutoField' |
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_INDEX_TABLESPACE | '' |
DEFAULT_TABLESPACE | '' |
DISALLOWED_USER_AGENTS | [] |
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 |
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 | [] |
IMPORT_EXPORT_USE_TRANSACTIONS | True |
INSTALLED_APPS | ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'django.contrib.sites', 'django.contrib.sitemaps', 'snowpenguin.django.recaptcha3', 'django_user_agents', 'mptt', 'import_export', 'ckeditor', 'ckeditor_uploader', 'shop', 'search', 'magaz', 'blog'] |
INTERNAL_IPS | [] |
LANGUAGES | [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('ckb', 'Central Kurdish (Sorani)'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('ms', 'Malay'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('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'), ('tg', 'Tajik'), ('th', 'Thai'), ('tk', 'Turkmen'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] |
LANGUAGES_BIDI | ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ur'] |
LANGUAGE_CODE | 'ru' |
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_URL | '/accounts/login/' |
LOGOUT_REDIRECT_URL | None |
MANAGERS | [] |
MEDIA_ROOT | '' |
MEDIA_URL | '/' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
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.contrib.sites.middleware.CurrentSiteMiddleware', 'django_user_agents.middleware.UserAgentMiddleware'] |
MIGRATION_MODULES | {} |
MONTH_DAY_FORMAT | 'F j' |
NUMBER_GROUPING | 0 |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT | '********************' |
PREPEND_WWW | False |
RECAPTCHA_DEFAULT_ACTION | 'generic' |
RECAPTCHA_PRIVATE_KEY | '********************' |
RECAPTCHA_PUBLIC_KEY | '********************' |
RECAPTCHA_SCORE_THRESHOLD | 0.9 |
ROOT_URLCONF | 'marketstorer.urls' |
SECRET_KEY | '********************' |
SECRET_KEY_FALLBACKS | '********************' |
SECURE_CONTENT_TYPE_NOSNIFF | False |
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 | 'marketstorer.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('/home/www/code/market/marketstorer/static')] |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | PosixPath('/home/www/code/market/marketstorer/static-root') |
STATIC_URL | '/static/' |
STORAGES | {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'}, 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}} |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [PosixPath('/home/www/code/market/marketstorer/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']}}] |
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 | True |
USE_TZ | True |
USE_X_FORWARDED_HOST | False |
USE_X_FORWARDED_PORT | False |
WSGI_APPLICATION | 'marketstorer.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.