'book'
Request Method: | GET |
---|---|
Request URL: | https://kelebooks.com/book/vi-kiland-seks-bez-liubvi/?page=1 |
Django Version: | 4.0 |
Exception Type: | KeyError |
Exception Value: | 'book' |
Exception Location: | /home/dortes/kelebooks/env/lib/python3.10/site-packages/django/contrib/sessions/backends/base.py, line 50, in __getitem__ |
Python Executable: | /home/dortes/kelebooks/env/bin/python |
Python Version: | 3.10.13 |
Python Path: | ['/home/dortes/kelebooks', '/home/dortes/kelebooks/env/bin', '/usr/lib/python310.zip', '/usr/lib/python3.10', '/usr/lib/python3.10/lib-dynload', '/home/dortes/kelebooks/env/lib/python3.10/site-packages'] |
Server time: | Fri, 29 Mar 2024 14:59:13 +0000 |
/home/dortes/kelebooks/env/lib/python3.10/site-packages/django/core/handlers/exception.py
, line 47, in inner
response = await sync_to_async(response_for_exception, thread_sensitive=False)(request, exc)
return response
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('book') |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7fb12ca34280>> |
request | <WSGIRequest: GET '/book/vi-kiland-seks-bez-liubvi/?page=1'> |
/home/dortes/kelebooks/env/lib/python3.10/site-packages/django/core/handlers/base.py
, line 181, 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 asyncio.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 0x7fb12b878d30> |
callback_args | () |
callback_kwargs | {'slug': 'vi-kiland-seks-bez-liubvi'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>> |
request | <WSGIRequest: GET '/book/vi-kiland-seks-bez-liubvi/?page=1'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7fb12ca34280> |
wrapped_callback | <function View.as_view.<locals>.view at 0x7fb12b878d30> |
/home/dortes/kelebooks/env/lib/python3.10/site-packages/django/views/generic/base.py
, line 69, 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
# instead.
Variable | Value |
---|---|
args | () |
cls | <class 'books.views.BookView'> |
initkwargs | {} |
kwargs | {'slug': 'vi-kiland-seks-bez-liubvi'} |
request | <WSGIRequest: GET '/book/vi-kiland-seks-bez-liubvi/?page=1'> |
self | <books.views.BookView object at 0x7fb12b6f25c0> |
/home/dortes/kelebooks/env/lib/python3.10/site-packages/django/views/generic/base.py
, line 101, 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 |
---|---|
args | () |
handler | <bound method BookView.get of <books.views.BookView object at 0x7fb12b6f25c0>> |
kwargs | {'slug': 'vi-kiland-seks-bez-liubvi'} |
request | <WSGIRequest: GET '/book/vi-kiland-seks-bez-liubvi/?page=1'> |
self | <books.views.BookView object at 0x7fb12b6f25c0> |
/home/dortes/kelebooks/books/views.py
, line 74, in get
except:
return HttpResponseRedirect("/")
self.object = self.get_object()
context = self.get_context_data(object=self.object)…
if self.request.user.is_authenticated:
current_user = Reader.objects.get_or_create(user=self.request.user)[0]
Variable | Value |
---|---|
args | (<WSGIRequest: GET '/book/vi-kiland-seks-bez-liubvi/?page=1'>,) |
book_object | <Book: Секс без любви> |
kwargs | {'slug': 'vi-kiland-seks-bez-liubvi'} |
self | <books.views.BookView object at 0x7fb12b6f25c0> |
/home/dortes/kelebooks/books/views.py
, line 141, in get_context_data
if int(page) == 1 and self.request.GET:
if self.request.user.is_authenticated:
current_user = Reader.objects.get_or_create(user=self.request.user)[0]
json_data = current_user.books
del json_data[str(context['object'].id)]
current_user.save()
else:
del self.request.session['book'][str(context['object'].id)]…
try:
Paginated = paginator.page(page)
Variable | Value |
---|---|
PaginatedInstance | ['<h2><p>Ви Киланд', '</p>', '\n<p>Секс без любви', '</p>', '\n</h2><blockquote><p><em>Главное в жизни – не победа.</em>', '</p>', '\n' '<p><em>Главное – человек, которому ты звонишь, чтобы сообщить о своей ' 'победе.</em>', '</p>', '\n' '</blockquote><section><img src="/files/books/112/img5598.jpg"/><hr/><p>Vi ' 'Keeland', '</p>', '\n<p>Sex, Not Love', '</p>', '\n<hr/><p>Copyright © 2018. SEX, NOT LOVE by Vi Keeland', '</p>', '\n<hr/><p>Перевод с английского <em>Нины Лебедевой</em>', '</p>', '\n<hr/><p>© Лебедева\xa0Н., перевод на русский язык, 2022', '</p>', '\n<p>© Издание на русском языке, оформление. ООО «Издательство «Эксмо», 2022', '</p>', '\n</section><section><h2><p>Глава 1', '</p>', '\n</h2><p><em>Наталья</em>', '</p>', '\n' '<hr/><img src="/files/books/112/img3896.jpg"/><hr/><p>–\xa0Как думаешь, есть ' 'какая-то связь между интеллектом и умением хорошо трахаться?\xa0– Я втянула ' 'в себя еще немного дымка и передала самокрутку подруге. Что ж, на этот раз я ' 'ухитрилась не поперхнуться и не закашляться. Последний раз мы баловались ' 'самокрутками еще в старших классах и успели утратить навык. А сегодня мы ' 'решили окончательно распрощаться с детством, выкурив на двоих то, что Анна ' 'конфисковала у своего шестнадцатилетнего брата.', '</p>', '\n' '<p>–\xa0Я выхожу замуж за парня, который конструирует роботов, чей интеллект ' 'намного превосходит человеческий. Разумеется, сообразительные парни и в ' 'постели способны на большее. Дереку ничего не стоит собрать кубик Рубика за ' 'тридцать секунд. Неужели ты думаешь, что у женщин все устроено сложнее?', '</p>', '\n' '<p>–\xa0Его приятель Адам – такой милый. Вот только весь последний час он ' 'рассказывал мне про алгоритм, который он создает для искусственного ' 'интеллекта по имени Линдси. Я в ответ восхищенно вздыхала и говорила «вот ' 'это да!». В связи с чем не могла бы ты сообщить Дереку, что ему не помешает ' 'обзавестись парочкой друзей поглупее?', '</p>', '\n<p>Анна вдохнула дымок и ответила мне неестественно высоким голосом:', '</p>', '\n' '<p>–\xa0Дерек закончил Массачусетский технологический институт и работает ' 'сейчас в крупной компьютерной фирме. Ну откуда тут взяться глупым ' 'друзьям?\xa0– Она многозначительно пихнула меня в бок.\xa0– Вот почему я ' 'хочу, чтобы ты переехала сюда. Не могу же я все время жить в окружении одних ' 'умников!', '</p>', '\n<p>–\xa0Ясно,\xa0– вздохнула я,\xa0– но Адам хотя бы симпатичный.', '</p>', '\n' '<p>–\xa0Хочешь сказать, что собираешься нарушить сегодня свой обет ' 'воздержания?', '</p>', '\n' '<p>–\xa0Скорее, уж завтра,\xa0– усмехнулась я,\xa0– при условии, что удача ' 'будет на его стороне. Я все еще живу по нью-йоркскому времени, и сегодня ' 'меня наверняка потянет спать до десерта.', '</p>', '\n' '<p>Мы с Анной укрылись от гостей, репетирующих свадебную церемонию, во ' 'дворике ресторана, за увитой плющом аркой. И я едва не подскочила, когда за ' 'спиной у меня раздался гортанный голос.', '</p>', '\n' '<p>–\xa0Ну надо же, если <em>ему</em> повезет! Ты и спереди смотришься так ' 'же потрясно, как сзади, или это все пустая похвальба?', '</p>', '\n' '<p>–\xa0Какого дьявола?\xa0– Повернувшись, я увидела парня, который шагал к ' 'нам по темному дворику.\xa0– С какой стати ты лезешь не в свое дело?', '</p>', '\n' '<p>Парень сделал еще пару шагов и оказался в свете фонаря, висевшего над ' 'аркой. При взгляде на незнакомца я утратила дар речи. Выглядел он ' 'потрясающе. Высокий. До того высокий, что мне, даже на каблуках, пришлось ' 'закинуть голову, чтобы взглянуть ему в лицо. Темные, давно не стриженные ' 'волосы придавали его облику особую привлекательность. На загорелом лице ' 'выделялись ярко-голубые глаза с лучиками морщинок – явный признак того, что ' 'парень охотно улыбался. А уж улыбка… не столько улыбка, сколько ' 'самодовольная ухмылка, которая выдавала его с головой.', '</p>', '\n<p>Не успела я вымолвить хотя бы словечко, как Анна бросилась ему на шею.', '</p>', '\n' '<p>Оставалось надеяться, что эти двое знакомы… <trimmed 130353 bytes string> |
__class__ | <class 'books.views.BookView'> |
context | {'book': <Book: Секс без любви>, 'object': <Book: Секс без любви>, 'view': <books.views.BookView object at 0x7fb12b6f25c0>} |
full_text | ('<h2><p>Ви Киланд</p>\n' '<p>Секс без любви</p>\n' '</h2><blockquote><p><em>Главное в жизни – не победа.</em></p>\n' '<p><em>Главное – человек, которому ты звонишь, чтобы сообщить о своей ' 'победе.</em></p>\n' '</blockquote><section><img src="/files/books/112/img5598.jpg"/><hr/><p>Vi ' 'Keeland</p>\n' '<p>Sex, Not Love</p>\n' '<hr/><p>Copyright © 2018. SEX, NOT LOVE by Vi Keeland</p>\n' '<hr/><p>Перевод с английского <em>Нины Лебедевой</em></p>\n' '<hr/><p>© Лебедева\xa0Н., перевод на русский язык, 2022</p>\n' '<p>© Издание на русском языке, оформление. ООО «Издательство «Эксмо», ' '2022</p>\n' '</section><section><h2><p>Глава 1</p>\n' '</h2><p><em>Наталья</em></p>\n' '<hr/><img src="/files/books/112/img3896.jpg"/><hr/><p>–\xa0Как думаешь, есть ' 'какая-то связь между интеллектом и умением хорошо трахаться?\xa0– Я втянула ' 'в себя еще немного дымка и передала самокрутку подруге. Что ж, на этот раз я ' 'ухитрилась не поперхнуться и не закашляться. Последний раз мы баловались ' 'самокрутками еще в старших классах и успели утратить навык. А сегодня мы ' 'решили окончательно распрощаться с детством, выкурив на двоих то, что Анна ' 'конфисковала у своего шестнадцатилетнего брата.</p>\n' '<p>–\xa0Я выхожу замуж за парня, который конструирует роботов, чей интеллект ' 'намного превосходит человеческий. Разумеется, сообразительные парни и в ' 'постели способны на большее. Дереку ничего не стоит собрать кубик Рубика за ' 'тридцать секунд. Неужели ты думаешь, что у женщин все устроено сложнее?</p>\n' '<p>–\xa0Его приятель Адам – такой милый. Вот только весь последний час он ' 'рассказывал мне про алгоритм, который он создает для искусственного ' 'интеллекта по имени Линдси. Я в ответ восхищенно вздыхала и говорила «вот ' 'это да!». В связи с чем не могла бы ты сообщить Дереку, что ему не помешает ' 'обзавестись парочкой друзей поглупее?</p>\n' '<p>Анна вдохнула дымок и ответила мне неестественно высоким голосом:</p>\n' '<p>–\xa0Дерек закончил Массачусетский технологический институт и работает ' 'сейчас в крупной компьютерной фирме. Ну откуда тут взяться глупым ' 'друзьям?\xa0– Она многозначительно пихнула меня в бок.\xa0– Вот почему я ' 'хочу, чтобы ты переехала сюда. Не могу же я все время жить в окружении одних ' 'умников!</p>\n' '<p>–\xa0Ясно,\xa0– вздохнула я,\xa0– но Адам хотя бы симпатичный.</p>\n' '<p>–\xa0Хочешь сказать, что собираешься нарушить сегодня свой обет ' 'воздержания?</p>\n' '<p>–\xa0Скорее, уж завтра,\xa0– усмехнулась я,\xa0– при условии, что удача ' 'будет на его стороне. Я все еще живу по нью-йоркскому времени, и сегодня ' 'меня наверняка потянет спать до десерта.</p>\n' '<p>Мы с Анной укрылись от гостей, репетирующих свадебную церемонию, во ' 'дворике ресторана, за увитой плющом аркой. И я едва не подскочила, когда за ' 'спиной у меня раздался гортанный голос.</p>\n' '<p>–\xa0Ну надо же, если <em>ему</em> повезет! Ты и спереди смотришься так ' 'же потрясно, как сзади, или это все пустая похвальба?</p>\n' '<p>–\xa0Какого дьявола?\xa0– Повернувшись, я увидела парня, который шагал к ' 'нам по темному дворику.\xa0– С какой стати ты лезешь не в свое дело?</p>\n' '<p>Парень сделал еще пару шагов и оказался в свете фонаря, висевшего над ' 'аркой. При взгляде на незнакомца я утратила дар речи. Выглядел он ' 'потрясающе. Высокий. До того высокий, что мне, даже на каблуках, пришлось ' 'закинуть голову, чтобы взглянуть ему в лицо. Темные, давно не стриженные ' 'волосы придавали его облику особую привлекательность. На загорелом лице ' 'выделялись ярко-голубые глаза с лучиками морщинок – явный признак того, что ' 'парень охотно улыбался. А уж улыбка… не столько улыбка, сколько ' 'самодовольная ухмылка, которая выдавала его с головой.</p>\n' '<p>Не успела я вымолвить хотя бы словечко, как Анна бросилась ему на ' 'шею.</p>\n' '<p>Оставалось надеяться, что эти двое знакомы, а иначе я могла бы ' 'заподозрить подругу в распущенности.</p>\n' '<p>–\xa0Хантер! Ты все-таки приехал.</p>\n' '<p>–\xa0Ясное дело. Не мог же я пропустить такое событие, как свадьба ' 'луч… <trimmed 122035 bytes string> |
kwargs | {'object': <Book: Секс без любви>} |
page | '1' |
paginator | <django.core.paginator.Paginator object at 0x7fb12b7b1300> |
self | <books.views.BookView object at 0x7fb12b6f25c0> |
/home/dortes/kelebooks/env/lib/python3.10/site-packages/django/contrib/sessions/backends/base.py
, line 50, in __getitem__
self.modified = False
self.serializer = import_string(settings.SESSION_SERIALIZER)
def __contains__(self, key):
return key in self._session
def __getitem__(self, key):
return self._session[key]…
def __setitem__(self, key, value):
self._session[key] = value
self.modified = True
def __delitem__(self, key):
Variable | Value |
---|---|
key | 'book' |
self | <django.contrib.sessions.backends.db.SessionStore object at 0x7fb12b6f2950> |
AnonymousUser
Variable | Value |
---|---|
page | '1' |
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
HTTP_ACCEPT | '*/*' |
HTTP_CONNECTION | 'close' |
HTTP_HOST | 'kelebooks.com' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_X_FORWARDED_FOR | '44.200.191.146' |
HTTP_X_FORWARDED_PROTO | 'https' |
HTTP_X_REAL_IP | '44.200.191.146' |
PATH_INFO | '/book/vi-kiland-seks-bez-liubvi/' |
QUERY_STRING | 'page=1' |
RAW_URI | '/book/vi-kiland-seks-bez-liubvi/?page=1' |
REMOTE_ADDR | '' |
REQUEST_METHOD | 'GET' |
SCRIPT_NAME | '' |
SERVER_NAME | 'kelebooks.com' |
SERVER_PORT | '443' |
SERVER_PROTOCOL | 'HTTP/1.0' |
SERVER_SOFTWARE | 'gunicorn/21.2.0' |
gunicorn.socket | <socket.socket fd=4, family=AddressFamily.AF_UNIX, type=SocketKind.SOCK_STREAM, proto=0, laddr=/run/kelebooks.sock> |
wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7fb12b6f17b0> |
wsgi.file_wrapper | <class 'gunicorn.http.wsgi.FileWrapper'> |
wsgi.input | <gunicorn.http.body.Body object at 0x7fb12b6f3a30> |
wsgi.input_terminated | True |
wsgi.multiprocess | False |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'https' |
wsgi.version | (1, 0) |
thisbook.settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ALLOWED_HOSTS | ['192.168.100.75', 'kelebooks.com', 'www.kelebooks.com', '127.0.0.1'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
BASE_DIR | PosixPath('/home/dortes/kelebooks') |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
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 | [] |
CSRF_USE_SESSIONS | False |
DATABASES | {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.sqlite3', 'HOST': '', 'NAME': PosixPath('/home/dortes/kelebooks/db.sqlite3'), 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} |
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.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' |
HTML_MINIFY | True |
IGNORABLE_404_URLS | [] |
INSTALLED_APPS | ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sites', 'django.contrib.sitemaps', 'star_ratings', 'hcaptcha_field', 'books'] |
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'), ('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', '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'] |
MIGRATION_MODULES | {} |
MONTH_DAY_FORMAT | 'F j' |
NUMBER_GROUPING | 0 |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT | '********************' |
PREPEND_WWW | False |
ROOT_URLCONF | 'thisbook.urls' |
SECRET_KEY | '********************' |
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 | True |
SESSION_SERIALIZER | 'django.contrib.sessions.serializers.JSONSerializer' |
SETTINGS_MODULE | 'thisbook.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 |
STAR_RATINGS_RATING_MODEL | 'star_ratings.Rating' |
STAR_RATINGS_STAR_HEIGHT | 22 |
STATICFILES_DIRS | [] |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | '/home/dortes/kelebooks/files' |
STATIC_URL | '/files/' |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [PosixPath('/home/dortes/kelebooks/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', 'books.custom_context_processor.categories_render']}}] |
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 |
WSGI_APPLICATION | 'thisbook.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.