No exception message supplied
Request Method: | GET |
---|---|
Request URL: | https://marketstorer.ru/c/ryukzaki-i-rantsy-dlya-shkoly/ |
Django Version: | 4.2.5 |
Exception Type: | TimeoutError |
Exception Location: | /home/www/code/market/env/lib/python3.11/site-packages/aiohttp/helpers.py, line 721, in __exit__ |
Raised during: | shop.views.CategoryView |
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: | Fri, 29 Mar 2024 10:16:15 +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 | TimeoutError() |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0xffffb039aa10>> |
request | <WSGIRequest: GET '/c/ryukzaki-i-rantsy-dlya-shkoly/'> |
/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 0xffffaecd8680> |
callback_args | () |
callback_kwargs | {'slug': 'ryukzaki-i-rantsy-dlya-shkoly'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>> |
request | <WSGIRequest: GET '/c/ryukzaki-i-rantsy-dlya-shkoly/'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0xffffb039aa10> |
wrapped_callback | <function View.as_view.<locals>.view at 0xffffaecd8680> |
/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 'shop.views.CategoryView'> |
initkwargs | {} |
kwargs | {'slug': 'ryukzaki-i-rantsy-dlya-shkoly'} |
request | <WSGIRequest: GET '/c/ryukzaki-i-rantsy-dlya-shkoly/'> |
self | <shop.views.CategoryView object at 0xffff9f648310> |
/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 BaseListView.get of <shop.views.CategoryView object at 0xffff9f648310>> |
kwargs | {'slug': 'ryukzaki-i-rantsy-dlya-shkoly'} |
request | <WSGIRequest: GET '/c/ryukzaki-i-rantsy-dlya-shkoly/'> |
self | <shop.views.CategoryView object at 0xffff9f648310> |
/home/www/code/market/env/lib/python3.11/site-packages/django/views/generic/list.py
, line 174, in get
if is_empty:
raise Http404(
_("Empty list and “%(class_name)s.allow_empty” is False.")
% {
"class_name": self.__class__.__name__,
}
)
context = self.get_context_data() ^^^^^^^^^^^^^^^^^^^^^^^…
return self.render_to_response(context)
class MultipleObjectTemplateResponseMixin(TemplateResponseMixin):
"""Mixin for responding with a template and list of objects."""
Variable | Value |
---|---|
allow_empty | True |
args | () |
kwargs | {'slug': 'ryukzaki-i-rantsy-dlya-shkoly'} |
request | <WSGIRequest: GET '/c/ryukzaki-i-rantsy-dlya-shkoly/'> |
self | <shop.views.CategoryView object at 0xffff9f648310> |
/home/www/code/market/marketstorer/shop/views.py
, line 104, in get_context_data
return market2
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.run_until_complete(items2()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
async def items3():
headers = {'Authorization': '0K5YIDGFhKpohFnX5IjGUYAhvs27iW'}
url = f'https://api.content.market.yandex.ru/v3/affiliate/search?text={catt_title}&geo_id=213&clid=3150662&fields=MODEL_PRICE,MODEL_RATING,MODEL_DEFAULT_OFFER,MODEL_MEDIA,OFFER_PHOTO,OFFER_DELIVERY&count=30&page=3'
Variable | Value |
---|---|
__class__ | <class 'shop.views.CategoryView'> |
cat | <Category: Рюкзаки и ранцы для школы> |
category | 'ryukzaki-i-rantsy-dlya-shkoly' |
cats | <function CategoryView.get_context_data.<locals>.cats at 0xffff85b7df80> |
catt_title | 'Рюкзаки и ранцы для школы' |
context | {'cat_descr': '', 'first_word': 'Рюкзаки', 'is_paginated': False, 'item_list': <QuerySet []>, 'market': [{'description': 'пол: унисекс, для мальчиков, для девочек, ' 'возрастная группа: начальная школа, средняя и ' 'старшая школа, тип: рюкзак, особенности: ручка ' 'для переноски, светоотражающие элементы, без ' 'наполнения, регулируемые лямки, объем: 14 л, ' 'специальные отделения: внешние карманы, карман ' 'для бутылки, высота: 45 см, вес: 0.25 кг, ' 'застежка: молния, количество отделений: 1, ' 'материал: металл, текстиль, полиэстер', 'id': 1755340881, 'link': 'https://market.yandex.ru/product--staff-riukzak-strike/1755340881?pp=929&clid=3150662&mclid=1003&distr_type=7&hid=13858259', 'modelSpecificationsLink': 'https://market.yandex.ru/product--staff-riukzak-strike/1755340881/spec?pp=929&clid=3150662&mclid=1003&distr_type=7&hid=13858259', 'name': 'STAFF Рюкзак Strike', 'offer': {'delivery': {'brief': 'в Москву — бесплатно, возможен ' 'самовывоз', 'price': {'value': '0'}}, 'description': '', 'name': 'Рюкзак/ранец/портфель школьный / для мальчика ' '/ девочки Staff Strike универсальный, 3 ' 'кармана, черный с салатовыми деталями, ' '45х27х12 см', 'photo': {'height': 1492, 'url': 'https://avatars.mds.yandex.net/get-mpic/5233452/img_id928887751938738062.jpeg/orig', 'width': 912}, 'photos': [{'height': 1492, 'url': 'https://avatars.mds.yandex.net/get-mpic/5233452/img_id928887751938738062.jpeg/orig', 'width': 912}, {'height': 1492, 'url': 'https://avatars.mds.yandex.net/get-mpic/5233339/img_id7400399434118361751.jpeg/orig', 'width': 827}, {'height': 1492, 'url': 'https://avatars.mds.yandex.net/get-mpic/5111824/img_id446949998837764483.jpeg/orig', 'width': 1060}, {'height': 1472, 'url': 'https://avatars.mds.yandex.net/get-mpic/4580278/img_id6915675379140852663.jpeg/orig', 'width': 1110}, {'height': 1454, 'url': 'https://avatars.mds.yandex.net/get-mpic/5233681/img_id5681326865066152982.jpeg/orig', 'width': 1051}, {'height': 1500, 'url': 'https://avatars.mds.yandex.net/get-mpic/10567286/2a0000018a37666b5a620e302d0b3ea2aa44/orig', 'width': 1500}, {'height': 1500, 'url': 'https://avatars.mds.yandex.net/get-mpic/5283122/2a0000018a37666b5e9663926f3a74af5dd8/orig', 'width': 1500}, {'height': 1500, 'url': 'https://avatars.mds.yandex.net/get-mpic/3590777/img_id910459009556163325.jpeg/orig', 'width': 1500}, {'height': 1500, 'url': 'https://avatars.mds.yandex.net/get-mpic/5031495/img_id5003997299184219278.jpeg/orig', 'width': 1500}, {'height': 1500, 'url': 'https://avatar… <trimmed 209232 bytes string> |
items2 | <function CategoryView.get_context_data.<locals>.items2 at 0xffff867c2520> |
kwargs | {} |
loop | <_UnixSelectorEventLoop running=False closed=False debug=False> |
self | <shop.views.CategoryView object at 0xffff9f648310> |
/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-298344' coro=<CategoryView.get_context_data.<locals>.items2() done, defined at /home/www/code/market/marketstorer/shop/views.py:78> exception=TimeoutError()> |
new_task | True |
self | <_UnixSelectorEventLoop running=False closed=False debug=False> |
/home/www/code/market/marketstorer/shop/views.py
, line 84, in items2
async def items2():
headers = {'Authorization': '0K5YIDGFhKpohFnX5IjGUYAhvs27iW'}
url = f'https://api.content.market.yandex.ru/v3/affiliate/search?text={catt_title}&geo_id=213&clid=3150662&fields=MODEL_PRICE,MODEL_RATING,MODEL_DEFAULT_OFFER,MODEL_MEDIA,OFFER_PHOTO,OFFER_DELIVERY&count=30&page=2'
async with aiohttp.ClientSession() as session:
async with session.get(url, headers=headers, timeout=4) as response: ^^^^^^^^^^^^^^^^^^…
try:
market2 = await response.text()
market2 = json.loads(market2)
totalItems = market2['context']
market2 = market2['items']
Variable | Value |
---|---|
catt_title | 'Рюкзаки и ранцы для школы' |
context | {'cat_descr': '', 'first_word': 'Рюкзаки', 'is_paginated': False, 'item_list': <QuerySet []>, 'market': [{'description': 'пол: унисекс, для мальчиков, для девочек, ' 'возрастная группа: начальная школа, средняя и ' 'старшая школа, тип: рюкзак, особенности: ручка ' 'для переноски, светоотражающие элементы, без ' 'наполнения, регулируемые лямки, объем: 14 л, ' 'специальные отделения: внешние карманы, карман ' 'для бутылки, высота: 45 см, вес: 0.25 кг, ' 'застежка: молния, количество отделений: 1, ' 'материал: металл, текстиль, полиэстер', 'id': 1755340881, 'link': 'https://market.yandex.ru/product--staff-riukzak-strike/1755340881?pp=929&clid=3150662&mclid=1003&distr_type=7&hid=13858259', 'modelSpecificationsLink': 'https://market.yandex.ru/product--staff-riukzak-strike/1755340881/spec?pp=929&clid=3150662&mclid=1003&distr_type=7&hid=13858259', 'name': 'STAFF Рюкзак Strike', 'offer': {'delivery': {'brief': 'в Москву — бесплатно, возможен ' 'самовывоз', 'price': {'value': '0'}}, 'description': '', 'name': 'Рюкзак/ранец/портфель школьный / для мальчика ' '/ девочки Staff Strike универсальный, 3 ' 'кармана, черный с салатовыми деталями, ' '45х27х12 см', 'photo': {'height': 1492, 'url': 'https://avatars.mds.yandex.net/get-mpic/5233452/img_id928887751938738062.jpeg/orig', 'width': 912}, 'photos': [{'height': 1492, 'url': 'https://avatars.mds.yandex.net/get-mpic/5233452/img_id928887751938738062.jpeg/orig', 'width': 912}, {'height': 1492, 'url': 'https://avatars.mds.yandex.net/get-mpic/5233339/img_id7400399434118361751.jpeg/orig', 'width': 827}, {'height': 1492, 'url': 'https://avatars.mds.yandex.net/get-mpic/5111824/img_id446949998837764483.jpeg/orig', 'width': 1060}, {'height': 1472, 'url': 'https://avatars.mds.yandex.net/get-mpic/4580278/img_id6915675379140852663.jpeg/orig', 'width': 1110}, {'height': 1454, 'url': 'https://avatars.mds.yandex.net/get-mpic/5233681/img_id5681326865066152982.jpeg/orig', 'width': 1051}, {'height': 1500, 'url': 'https://avatars.mds.yandex.net/get-mpic/10567286/2a0000018a37666b5a620e302d0b3ea2aa44/orig', 'width': 1500}, {'height': 1500, 'url': 'https://avatars.mds.yandex.net/get-mpic/5283122/2a0000018a37666b5e9663926f3a74af5dd8/orig', 'width': 1500}, {'height': 1500, 'url': 'https://avatars.mds.yandex.net/get-mpic/3590777/img_id910459009556163325.jpeg/orig', 'width': 1500}, {'height': 1500, 'url': 'https://avatars.mds.yandex.net/get-mpic/5031495/img_id5003997299184219278.jpeg/orig', 'width': 1500}, {'height': 1500, 'url': 'https://avatar… <trimmed 209232 bytes string> |
headers | {'Authorization': '0K5YIDGFhKpohFnX5IjGUYAhvs27iW'} |
session | <aiohttp.client.ClientSession object at 0xffff85cec910> |
url | ('https://api.content.market.yandex.ru/v3/affiliate/search?text=Рюкзаки и ' 'ранцы для ' 'школы&geo_id=213&clid=3150662&fields=MODEL_PRICE,MODEL_RATING,MODEL_DEFAULT_OFFER,MODEL_MEDIA,OFFER_PHOTO,OFFER_DELIVERY&count=30&page=2') |
/home/www/code/market/env/lib/python3.11/site-packages/aiohttp/client.py
, line 1141, in __aenter__
ret = self._coro.__await__()
return ret
def __iter__(self) -> Generator[Any, None, _RetType]:
return self.__await__()
async def __aenter__(self) -> _RetType:
self._resp = await self._coro ^^^^^^^^^^^^^^^^…
return self._resp
class _RequestContextManager(_BaseRequestContextManager[ClientResponse]):
__slots__ = ()
Variable | Value |
---|---|
self | <aiohttp.client._RequestContextManager object at 0xffff9f4017e0> |
/home/www/code/market/env/lib/python3.11/site-packages/aiohttp/client.py
, line 560, in _request
read_bufsize=read_bufsize,
)
try:
try:
resp = await req.send(conn)
try:
await resp.start(conn) ^^^^^^^^^^^^^^^^^^^^^^…
except BaseException:
resp.close()
raise
except BaseException:
conn.close()
raise
Variable | Value |
---|---|
all_cookies | <SimpleCookie: > |
allow_redirects | True |
auth | None |
auth_from_url | None |
chunked | None |
compress | None |
conn | Connection<ConnectionKey(host='api.content.market.yandex.ru', port=443, is_ssl=True, ssl=None, proxy=None, proxy_auth=None, proxy_headers_hash=None)> |
cookies | None |
data | None |
expect100 | False |
fingerprint | None |
handle | None |
headers | <CIMultiDict('Authorization': '0K5YIDGFhKpohFnX5IjGUYAhvs27iW')> |
history | [] |
json | None |
max_redirects | 10 |
method | 'GET' |
params | None |
proxy | None |
proxy_auth | None |
proxy_headers | <CIMultiDict()> |
raise_for_status | None |
read_bufsize | 65536 |
read_until_eof | True |
real_timeout | ClientTimeout(total=4, connect=None, sock_read=None, sock_connect=None) |
redirects | 0 |
req | <aiohttp.client_reqrep.ClientRequest object at 0xffff9dc6aed0> |
resp | <ClientResponse(https://api.content.market.yandex.ru/v3/affiliate/search?text=%D0%A0%D1%8E%D0%BA%D0%B7%D0%B0%D0%BA%D0%B8+%D0%B8+%D1%80%D0%B0%D0%BD%D1%86%D1%8B+%D0%B4%D0%BB%D1%8F+%D1%88%D0%BA%D0%BE%D0%BB%D1%8B&geo_id=213&clid=3150662&fields=MODEL_PRICE,MODEL_RATING,MODEL_DEFAULT_OFFER,MODEL_MEDIA,OFFER_PHOTO,OFFER_DELIVERY&count=30&page=2) [None None]> None |
self | <aiohttp.client.ClientSession object at 0xffff85cec910> |
skip_auto_headers | None |
skip_headers | set() |
ssl | None |
ssl_context | None |
str_or_url | ('https://api.content.market.yandex.ru/v3/affiliate/search?text=Рюкзаки и ' 'ранцы для ' 'школы&geo_id=213&clid=3150662&fields=MODEL_PRICE,MODEL_RATING,MODEL_DEFAULT_OFFER,MODEL_MEDIA,OFFER_PHOTO,OFFER_DELIVERY&count=30&page=2') |
timeout | 4 |
timer | <aiohttp.helpers.TimerContext object at 0xffff85602250> |
tm | <aiohttp.helpers.TimeoutHandle object at 0xffff9e314490> |
trace_request_ctx | None |
traces | [] |
url | URL('https://api.content.market.yandex.ru/v3/affiliate/search?text=%D0%A0%D1%8E%D0%BA%D0%B7%D0%B0%D0%BA%D0%B8+%D0%B8+%D1%80%D0%B0%D0%BD%D1%86%D1%8B+%D0%B4%D0%BB%D1%8F+%D1%88%D0%BA%D0%BE%D0%BB%D1%8B&geo_id=213&clid=3150662&fields=MODEL_PRICE,MODEL_RATING,MODEL_DEFAULT_OFFER,MODEL_MEDIA,OFFER_PHOTO,OFFER_DELIVERY&count=30&page=2') |
verify_ssl | None |
version | HttpVersion(major=1, minor=1) |
/home/www/code/market/env/lib/python3.11/site-packages/aiohttp/client_reqrep.py
, line 894, in start
async def start(self, connection: "Connection") -> "ClientResponse":
"""Start response processing."""
self._closed = False
self._protocol = connection.protocol
self._connection = connection
with self._timer: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
while True:
# read response
try:
protocol = self._protocol
message, payload = await protocol.read() # type: ignore[union-attr]
except http.HttpProcessingError as exc:
Variable | Value |
---|---|
connection | Connection<ConnectionKey(host='api.content.market.yandex.ru', port=443, is_ssl=True, ssl=None, proxy=None, proxy_auth=None, proxy_headers_hash=None)> |
protocol | <aiohttp.client_proto.ResponseHandler object at 0xffff9db49e10> |
self | <ClientResponse(https://api.content.market.yandex.ru/v3/affiliate/search?text=%D0%A0%D1%8E%D0%BA%D0%B7%D0%B0%D0%BA%D0%B8+%D0%B8+%D1%80%D0%B0%D0%BD%D1%86%D1%8B+%D0%B4%D0%BB%D1%8F+%D1%88%D0%BA%D0%BE%D0%BB%D1%8B&geo_id=213&clid=3150662&fields=MODEL_PRICE,MODEL_RATING,MODEL_DEFAULT_OFFER,MODEL_MEDIA,OFFER_PHOTO,OFFER_DELIVERY&count=30&page=2) [None None]> None |
/home/www/code/market/env/lib/python3.11/site-packages/aiohttp/helpers.py
, line 721, in __exit__
exc_val: Optional[BaseException],
exc_tb: Optional[TracebackType],
) -> Optional[bool]:
if self._tasks:
self._tasks.pop()
if exc_type is asyncio.CancelledError and self._cancelled:
raise asyncio.TimeoutError from None ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
return None
def timeout(self) -> None:
if not self._cancelled:
for task in set(self._tasks):
task.cancel()
Variable | Value |
---|---|
exc_tb | <traceback object at 0xffff9da555c0> |
exc_type | <class 'asyncio.exceptions.CancelledError'> |
exc_val | CancelledError() |
self | <aiohttp.helpers.TimerContext object at 0xffff85602250> |
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 | '44.202.209.105' |
HTTP_X_FORWARDED_PROTO | 'https' |
HTTP_X_REAL_IP | '44.202.209.105' |
PATH_INFO | '/c/ryukzaki-i-rantsy-dlya-shkoly/' |
QUERY_STRING | '' |
RAW_URI | '/c/ryukzaki-i-rantsy-dlya-shkoly/' |
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 0xffff85a2c6a0> |
wsgi.file_wrapper | <class 'gunicorn.http.wsgi.FileWrapper'> |
wsgi.input | <gunicorn.http.body.Body object at 0xffff85909a10> |
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.