int() argument must be a string, a bytes-like object or a number, not 'NoneType'
Request Method: | GET |
---|---|
Request URL: | https://deti-travel.ru/camp/6436/ |
Django Version: | 3.2.10 |
Exception Type: | TypeError |
Exception Value: | int() argument must be a string, a bytes-like object or a number, not 'NoneType' |
Exception Location: | ./lib/models/model.py, line 13, in slug_or_id |
Python Executable: | /usr/local/bin/uwsgi3.8 |
Python Version: | 3.8.0 |
Python Path: | ['.', '', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/home/webmaster/www/deti-travel.ru/env8/lib/python3.8/site-packages'] |
Server time: | Fri, 29 Mar 2024 15:44:12 +0300 |
/home/webmaster/www/deti-travel.ru/env8/lib/python3.8/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 | TypeError("int() argument must be a string, a bytes-like object or a number, not 'NoneType'") |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f960afeb160>> |
request | <WSGIRequest: GET '/camp/6436/'> |
/home/webmaster/www/deti-travel.ru/env8/lib/python3.8/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 serve at 0x7f9609c1d700> |
callback_args | ('camp/6436/',) |
callback_kwargs | {} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7f960d8f9e50>> |
request | <WSGIRequest: GET '/camp/6436/'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f960afeb160> |
wrapped_callback | <function serve at 0x7f9609c1d700> |
/home/webmaster/www/deti-travel.ru/env8/lib/python3.8/site-packages/wagtail/core/views.py
, line 26, in serve
page, args, kwargs = site.root_page.localized.specific.route(request, path_components)
for fn in hooks.get_hooks('before_serve_page'):
result = fn(page, request, args, kwargs)
if isinstance(result, HttpResponse):
return result
return page.serve(request, *args, **kwargs)…
def authenticate_with_password(request, page_view_restriction_id, page_id):
"""
Handle a submission of PasswordViewRestrictionForm to grant view access over a
subtree that is protected by a PageViewRestriction
Variable | Value |
---|---|
args | [] |
fn | <function check_view_restrictions at 0x7f9609fcc3a0> |
kwargs | {'path_components': ['6436']} |
page | <ApplicationPage: [*] Просмотр лагеря> |
path | 'camp/6436/' |
path_components | ['camp', '6436'] |
request | <WSGIRequest: GET '/camp/6436/'> |
result | None |
site | <Site: Deti-Travel.ru [по умолчанию]> |
./home/models.py
, line 596, in serve
module = self.app_profile.module if self.app_profile is not None else self.app_module
kwargs.update({
'wagtail_context': context,
#'seo_contexts': self.seo_contexts,
'variables': SiteVariable.get_site_variables()
})
return app_view(request, path=module, params=self.app_params, template=tpl, **kwargs)…
Variable | Value |
---|---|
context | {'page': <ApplicationPage: [*] Просмотр лагеря>, 'request': <WSGIRequest: GET '/camp/6436/'>, 'self': <ApplicationPage: [*] Просмотр лагеря>} |
kwargs | {'path_components': ['6436'], 'variables': {'cashback': '-20%', 'compensation_hint': '<div>Стоимость путевки может быть ' 'уменьшена на сумму государственной ' 'компенсации за счет муниципальных органов ' 'власти. </div>'}, 'wagtail_context': {'page': <ApplicationPage: [*] Просмотр лагеря>, 'request': <WSGIRequest: GET '/camp/6436/'>, 'self': <ApplicationPage: [*] Просмотр лагеря>}} |
module | 'camps.views.CampView' |
redirect | None |
request | <WSGIRequest: GET '/camp/6436/'> |
self | <ApplicationPage: [*] Просмотр лагеря> |
tpl | 'camps/camp_info.html' |
./lib/views/app.py
, line 25, in app_view
if template:
view_kwargs['template_name'] = template
if params and len(params) > 0:
kwargs.update(str2dict(params)) # Добавляем передаваемые параметры
res = view_class.as_view(**view_kwargs)(request, **kwargs)…
# Результат вернуть в виде HTML для встраивания в другой view
if as_html:
res.render()
if res.is_rendered:
return res.content.decode('utf-8')
Variable | Value |
---|---|
as_html | False |
kwargs | {'path_components': ['6436'], 'variables': {'cashback': '-20%', 'compensation_hint': '<div>Стоимость путевки может быть ' 'уменьшена на сумму государственной ' 'компенсации за счет муниципальных органов ' 'власти. </div>'}, 'wagtail_context': {'page': <ApplicationPage: [*] Просмотр лагеря>, 'request': <WSGIRequest: GET '/camp/6436/'>, 'self': <ApplicationPage: [*] Просмотр лагеря>}} |
params | None |
path | 'camps.views.CampView' |
request | <WSGIRequest: GET '/camp/6436/'> |
template | 'camps/camp_info.html' |
view_class | <class 'camps.views.CampView'> |
view_kwargs | {'template_name': 'camps/camp_info.html'} |
/home/webmaster/www/deti-travel.ru/env8/lib/python3.8/site-packages/django/views/generic/base.py
, line 70, 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
# take name and docstring from class
update_wrapper(view, cls, updated=())
Variable | Value |
---|---|
args | () |
cls | <class 'camps.views.CampView'> |
initkwargs | {'template_name': 'camps/camp_info.html'} |
kwargs | {'path_components': ['6436'], 'variables': {'cashback': '-20%', 'compensation_hint': '<div>Стоимость путевки может быть ' 'уменьшена на сумму государственной ' 'компенсации за счет муниципальных органов ' 'власти. </div>'}, 'wagtail_context': {'page': <ApplicationPage: [*] Просмотр лагеря>, 'request': <WSGIRequest: GET '/camp/6436/'>, 'self': <ApplicationPage: [*] Просмотр лагеря>}} |
request | <WSGIRequest: GET '/camp/6436/'> |
self | <camps.views.CampView object at 0x7f9609b105b0> |
./camps/views.py
, line 38, in dispatch
class CampView(BaseCampView):
def dispatch(self, request, *args, **kwargs):
path = kwargs['path_components']
camp_id = path[0]
# super-класс наследуется от DetailView, в который обязательно нужно передавать pk!
return super().dispatch(request, *args, pk=camp_id, **kwargs)…
# ----------------------------------------------------------------------------------------------------------------------
#
# Вывод списка лагерей
#
Variable | Value |
---|---|
__class__ | <class 'camps.views.CampView'> |
args | () |
camp_id | '6436' |
kwargs | {'path_components': ['6436'], 'variables': {'cashback': '-20%', 'compensation_hint': '<div>Стоимость путевки может быть ' 'уменьшена на сумму государственной ' 'компенсации за счет муниципальных органов ' 'власти. </div>'}, 'wagtail_context': {'page': <ApplicationPage: [*] Просмотр лагеря>, 'request': <WSGIRequest: GET '/camp/6436/'>, 'self': <ApplicationPage: [*] Просмотр лагеря>}} |
path | ['6436'] |
request | <WSGIRequest: GET '/camp/6436/'> |
self | <camps.views.CampView object at 0x7f9609b105b0> |
./camps/mod/camp_detailes.py
, line 68, in dispatch
# Проверяем, есть ли такой диспетчер
dispatcher = getattr(self, 'dispatch_%s' % self.subpage, None)
if dispatcher is not None:
return dispatcher(request, *args, **self.kwargs)
else:
raise Http404
return super(CampView, self).dispatch(request, *args, **self.kwargs)…
def build_path(self, **kwargs):
"""
Вызывается из шаблона для генерации ссылки по параметрам
:param kwargs:
:return:
Variable | Value |
---|---|
__class__ | <class 'camps.mod.camp_detailes.CampView'> |
args | () |
camp_id | '6436' |
kwargs | {'camp_id': '6436', 'pk': '6436', 'variables': {'cashback': '-20%', 'compensation_hint': '<div>Стоимость путевки может быть ' 'уменьшена на сумму государственной ' 'компенсации за счет муниципальных органов ' 'власти. </div>'}, 'wagtail_context': {'page': <ApplicationPage: [*] Просмотр лагеря>, 'request': <WSGIRequest: GET '/camp/6436/'>, 'self': <ApplicationPage: [*] Просмотр лагеря>}} |
request | <WSGIRequest: GET '/camp/6436/'> |
self | <camps.views.CampView object at 0x7f9609b105b0> |
/home/webmaster/www/deti-travel.ru/env8/lib/python3.8/site-packages/django/views/generic/base.py
, line 98, 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 BaseDetailView.get of <camps.views.CampView object at 0x7f9609b105b0>> |
kwargs | {'camp_id': '6436', 'pk': '6436', 'variables': {'cashback': '-20%', 'compensation_hint': '<div>Стоимость путевки может быть ' 'уменьшена на сумму государственной ' 'компенсации за счет муниципальных органов ' 'власти. </div>'}, 'wagtail_context': {'page': <ApplicationPage: [*] Просмотр лагеря>, 'request': <WSGIRequest: GET '/camp/6436/'>, 'self': <ApplicationPage: [*] Просмотр лагеря>}} |
request | <WSGIRequest: GET '/camp/6436/'> |
self | <camps.views.CampView object at 0x7f9609b105b0> |
/home/webmaster/www/deti-travel.ru/env8/lib/python3.8/site-packages/django/views/generic/detail.py
, line 107, in get
return super().get_context_data(**context)
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 | {'camp_id': '6436', 'pk': '6436', 'variables': {'cashback': '-20%', 'compensation_hint': '<div>Стоимость путевки может быть ' 'уменьшена на сумму государственной ' 'компенсации за счет муниципальных органов ' 'власти. </div>'}, 'wagtail_context': {'page': <ApplicationPage: [*] Просмотр лагеря>, 'request': <WSGIRequest: GET '/camp/6436/'>, 'self': <ApplicationPage: [*] Просмотр лагеря>}} |
request | <WSGIRequest: GET '/camp/6436/'> |
self | <camps.views.CampView object at 0x7f9609b105b0> |
./camps/mod/camp_detailes.py
, line 254, in get_context_data
context['search_url'] = Page.objects.get(slug='camps').get_url()
context['app_params'] = self.kwargs.pop('app_params', [])
context['camp_types'] = CampsAPI.get_types()
context['countries'] = CampsAPI.get_countries()
context['country'] = self.camp.country
context['regions'] = CampsAPI.get_regions(self.camp.country)…
if self.camp.region:
context['region'] = self.camp.region.parent or self.camp.region
context['region_parent'] = self.camp.region.parent or self.camp.region
context['calendar'] = self.calendar
Variable | Value |
---|---|
__class__ | <class 'camps.mod.camp_detailes.CampView'> |
context | {'app_params': [], 'camp': <Camp: Вместо школы [6436]>, 'camp_types': <QuerySet [<CampType: Летний лагерь 2024>, <CampType: Весенний лагерь 2024>, <CampType: Лагерь на море>, <CampType: Баскетбольный лагерь>, <CampType: Бизнес-лагерь>, <CampType: Военный лагерь>, <CampType: В реестре>, <CampType: Горнолыжный лагерь>, <CampType: Городской досуг>, <CampType: Дневные лагеря>, <CampType: Зимний лагерь>, <CampType: Игровой лагерь>, <CampType: Интеллектуальный лагерь>, <CampType: Киберспортивные лагеря>, <CampType: Кинолагерь>, <CampType: Компьютерный лагерь>, <CampType: Конный лагерь>, <CampType: Лагерь выходного дня>, <CampType: Лагерь для блогеров>, <CampType: Лагерь для мальчиков>, '...(remaining elements truncated)...']>, 'countries': <QuerySet [<Country: Россия>, <Country: Online>, <Country: Австрия>, <Country: Беларусь>, <Country: Болгария>, <Country: Великобритания>, <Country: Германия>, <Country: Греция>, <Country: Грузия>, <Country: Египет>, <Country: Ирландия>, <Country: Испания>, <Country: Италия>, <Country: Канада>, <Country: Кипр>, <Country: Китай>, <Country: Малайзия>, <Country: Мальта>, <Country: Норвегия>, <Country: ОАЭ>, '...(remaining elements truncated)...']>, 'country': None, 'object': <Camp: Вместо школы [6436]>, 'page': <ApplicationPage: [*] Просмотр лагеря>, 'path': ['6436'], 'request': <WSGIRequest: GET '/camp/6436/'>, 'search_url': '/camps/', 'self': <ApplicationPage: [*] Просмотр лагеря>, 'variables': {'cashback': '-20%', 'compensation_hint': '<div>Стоимость путевки может быть ' 'уменьшена на сумму государственной ' 'компенсации за счет муниципальных органов ' 'власти. </div>'}, 'view': <camps.views.CampView object at 0x7f9609b105b0>} |
kwargs | {'object': <Camp: Вместо школы [6436]>} |
self | <camps.views.CampView object at 0x7f9609b105b0> |
./camps/api.py
, line 100, in get_regions
qs = Country.objects.filter(camps__in=camps_qs, display=True)
if group:
qs = qs.annotate(cnt=Count('id'))
return qs.order_by(F('priority').desc(nulls_last=True), 'name')
@classmethod
def get_regions(cls, country):
camps_qs = cls.get_camps().filter(country__exact=cls.get_country(country))…
# FIXME: Здесь не учитывается вложенность регионов. Например, в Крыму много лагерей во вложенных курортных городах,
# а к самому Крыму привязано всего несколько лагерей
return Region.objects.filter(camps__in=camps_qs, display=True).annotate(cnt=Count('id')) \
.order_by(F('priority').desc(nulls_last=True), 'name')
@classmethod
Variable | Value |
---|---|
cls | <class 'camps.api.CampsAPI'> |
country | None |
./camps/api.py
, line 50, in get_country
return camps_type
@classmethod
def get_country(cls, country):
if isinstance(country, Country):
return country
try:
country = Country.objects.get(**slug_or_id(country))…
except Country.DoesNotExist:
raise CampsAPIError(u'Страна `%s` не найдена!' % country)
return country
@classmethod
def get_region(cls, region):
Variable | Value |
---|---|
cls | <class 'camps.api.CampsAPI'> |
country | None |
./lib/models/model.py
, line 13, in slug_or_id
#
from django.db import models
def slug_or_id(param):
args = {}
try:
args['pk'] = int(param)…
except ValueError:
args['slug'] = param
return args
"""
Variable | Value |
---|---|
args | {} |
param | None |
AnonymousUser
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
CONTENT_LENGTH | '' |
CONTENT_TYPE | '' |
DOCUMENT_ROOT | '/home/webmaster/www/deti-travel.ru/dt2018/dt2018/static' |
HTTPS | 'on' |
HTTP_ACCEPT | '*/*' |
HTTP_HOST | 'deti-travel.ru' |
HTTP_REFERER | 'https://deti-travel.ru/camps/1404/base/6436.html' |
HTTP_USER_AGENT | 'claudebot' |
PATH_INFO | '/camp/6436/' |
QUERY_STRING | '' |
REMOTE_ADDR | '54.225.21.228' |
REMOTE_PORT | '49836' |
REQUEST_METHOD | 'GET' |
REQUEST_SCHEME | 'https' |
REQUEST_URI | '/camp/6436/' |
SCRIPT_NAME | '' |
SERVER_NAME | 'deti-travel.ru' |
SERVER_PORT | '443' |
SERVER_PROTOCOL | 'HTTP/1.1' |
uwsgi.core | 996 |
uwsgi.node | b'unbrained.us' |
uwsgi.version | b'2.0.21' |
wsgi.errors | <_io.TextIOWrapper name=2 mode='w' encoding='UTF-8'> |
wsgi.file_wrapper | <built-in function uwsgi_sendfile> |
wsgi.input | <uwsgi._Input object at 0x7f9609c7f5b0> |
wsgi.multiprocess | False |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'https' |
wsgi.version | (1, 0) |
x-wsgiorg.fdevent.readable | <built-in function uwsgi_eventfd_read> |
x-wsgiorg.fdevent.timeout | None |
x-wsgiorg.fdevent.writable | <built-in function uwsgi_eventfd_write> |
dt2018.settings.dev
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ALLOWED_HOSTS | ['deti-travel.ru', 'test.deti-travel.ru'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
BASE_DIR | '/home/webmaster/www/deti-travel.ru/dt2018' |
BASE_URL | 'https://deti-travel.ru' |
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': None, 'DISABLE_SERVER_SIDE_CURSORS': True, 'ENGINE': 'django_db_geventpool.backends.postgresql_psycopg2', 'HOST': '127.0.0.1', 'NAME': 'pg_detitravel', 'OPTIONS': {'MAX_CONNS': 5}, 'PASSWORD': '********************', 'PORT': '6432', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'webmaster'}} |
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 |
DEBUG_TOOLBAR_CONFIG | {} |
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 | 'Deti-Travel.ru <info@deti-travel.ru>' |
DEFAULT_HASHING_ALGORITHM | 'sha256' |
DEFAULT_INDEX_TABLESPACE | '' |
DEFAULT_TABLESPACE | '' |
DISALLOWED_USER_AGENTS | [] |
DKIM_DOMAIN | 'deti-travel.ru' |
DKIM_PRIVATE_KEY | '********************' |
DKIM_SELECTOR | '1615912736.travel' |
EMAIL_BACKEND | 'django_dkim.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 |
ENABLE_WORKERS | 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 | [] |
INSTALLED_APPS | ['home', 'geobase', 'users', 'reviews', 'camps', 'cabinet', 'mailer', 'martor', 'phonenumber_field', 'wagtail.contrib.forms', 'wagtail.contrib.redirects', 'wagtail.embeds', 'wagtail.sites', 'wagtail.users', 'wagtail.snippets', 'wagtail.documents', 'wagtail.images', 'wagtail.search', 'wagtail.admin', 'wagtail.core', 'wagtail.contrib.styleguide', 'modelcluster', 'taggit', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'rest_framework', 'admin_auto_filters', 'adminsortable2', 'rangefilter'] |
INTERNAL_IPS | ['127.0.0.1', '192.168.1.2'] |
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'), ('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-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 | '/home/webmaster/www/deti-travel.ru/dt2018/media' |
MEDIA_URL | '/media/' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
MIDDLEWARE | ['django.middleware.gzip.GZipMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'lib.middleware.session.AnonymousHashMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'wagtail.contrib.legacy.sitemiddleware.SiteMiddleware', 'wagtail.contrib.redirects.middleware.RedirectMiddleware'] |
MIGRATION_MODULES | {} |
MONEY_RATES | {'APP_ID': '581cc53393164cee9b60ffae89657611', 'BASE_CURRENCY': 'USD', 'URL': 'http://openexchangerates.org/api/latest.json'} |
MONEY_YAHOO | {'URL': 'https://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote?format=json'} |
MONTH_DAY_FORMAT | 'F j' |
NUMBER_GROUPING | 0 |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT | '********************' |
PASSWORD_RESET_TIMEOUT_DAYS | '********************' |
PHONENUMBER_DB_FORMAT | 'E164' |
PHONENUMBER_DEFAULT_FORMAT | 'E164' |
PHONENUMBER_DEFAULT_REGION | 'RU' |
PREPEND_WWW | False |
PROJECT_DIR | '/home/webmaster/www/deti-travel.ru/dt2018/dt2018' |
REST_FRAMEWORK | {'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'PAGE_SIZE': 20} |
ROOT_URLCONF | 'dt2018.urls' |
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 | 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.signed_cookies' |
SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
SESSION_FILE_PATH | None |
SESSION_SAVE_EVERY_REQUEST | True |
SESSION_SERIALIZER | 'django.contrib.sessions.serializers.JSONSerializer' |
SETTINGS_MODULE | 'dt2018.settings.dev' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
STATICFILES_DIRS | ['/home/webmaster/www/deti-travel.ru/dt2018/dt2018/static'] |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | '/home/webmaster/www/deti-travel.ru/dt2018/static' |
STATIC_URL | '/static/' |
TELEGRAM | {'ENABLED': True, 'LOCAL': False, 'TOKEN': '********************', 'URL': 't.me/DetiTravelBot', 'WEBHOOK_URL': 'https://deti-travel.ru/telegram-bot-webhook/'} |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/home/webmaster/www/deti-travel.ru/dt2018/dt2018/templates'], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.template.context_processors.media', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages']}}] |
TEST_NON_SERIALIZED_APPS | [] |
TEST_RUNNER | 'django.test.runner.DiscoverRunner' |
TEXTREACTOR_API_KEY | '********************' |
TEXTREACTOR_API_URL | '********************' |
THOUSAND_SEPARATOR | ',' |
TIME_FORMAT | 'P' |
TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
TIME_ZONE | 'Europe/Moscow' |
USE_I18N | True |
USE_L10N | True |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | True |
USE_X_FORWARDED_HOST | False |
USE_X_FORWARDED_PORT | False |
WAGTAIL_SITE_NAME | 'Deti-Travel.ru' |
WSGI_APPLICATION | 'dt2018.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.