Field 'id' expected a number but got 'classic'.
Request Method: | GET |
---|---|
Request URL: | http://ledyahcollege.ru/photo/classic/ |
Django Version: | 3.0.2 |
Exception Type: | ValueError |
Exception Value: | Field 'id' expected a number but got 'classic'. |
Exception Location: | /usr/local/lib/python3.7/site-packages/django/db/models/fields/__init__.py in get_prep_value, line 1772 |
Python Executable: | /usr/local/bin/python |
Python Version: | 3.7.16 |
Python Path: | ['/usr/local/bin', '/opt/shkt', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages'] |
Server time: | Пт, 29 Мар 2024 06:20:54 +0000 |
/usr/local/lib/python3.7/site-packages/django/db/models/fields/__init__.py
in get_prep_value
return validators_
def get_prep_value(self, value):
value = super().get_prep_value(value)
if value is None:
return None
try:
return int(value)…
except (TypeError, ValueError) as e:
raise e.__class__(
"Field '%s' expected a number but got %r." % (self.name, value),
) from e
def get_internal_type(self):
Variable | Value |
---|---|
__class__ | <class 'django.db.models.fields.IntegerField'> |
self | <django.db.models.fields.AutoField: id> |
value | 'classic' |
/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py
in inner
This decorator is automatically applied to all middleware to ensure that
no middleware leaks an exception and that the next middleware in the stack
can rely on getting a response instead of an exception.
"""
@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 | ValueError("Field 'id' expected a number but got 'classic'.") |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7fc6d4637650>> |
request | <WSGIRequest: GET '/photo/classic/'> |
/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py
in _get_response
break
if response is None:
wrapped_callback = self.make_view_atomic(callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs)
except Exception as e:
response = self.process_exception_by_middleware(e, request)…
# Complain if the view returned None (a common error).
if response is None:
if isinstance(callback, types.FunctionType): # FBV
view_name = callback.__name__
else: # CBV
Variable | Value |
---|---|
callback | <function photo at 0x7fc6d400d170> |
callback_args | () |
callback_kwargs | {'page': 'classic'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7fc6d40b7650>> |
request | <WSGIRequest: GET '/photo/classic/'> |
resolver | <URLResolver 'shkt.urls' (None:None) '^/'> |
resolver_match | ResolverMatch(func=app.views.photo, args=(), kwargs={'page': 'classic'}, url_name=photo-group, app_names=[], namespaces=[], route=^photo/(?P<page>\w+)/$) |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7fc6d4637650> |
wrapped_callback | <function photo at 0x7fc6d400d170> |
/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py
in _get_response
response = middleware_method(request, callback, callback_args, callback_kwargs)
if response:
break
if response is None:
wrapped_callback = self.make_view_atomic(callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs)…
except Exception as e:
response = self.process_exception_by_middleware(e, request)
# Complain if the view returned None (a common error).
if response is None:
if isinstance(callback, types.FunctionType): # FBV
Variable | Value |
---|---|
callback | <function photo at 0x7fc6d400d170> |
callback_args | () |
callback_kwargs | {'page': 'classic'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7fc6d40b7650>> |
request | <WSGIRequest: GET '/photo/classic/'> |
resolver | <URLResolver 'shkt.urls' (None:None) '^/'> |
resolver_match | ResolverMatch(func=app.views.photo, args=(), kwargs={'page': 'classic'}, url_name=photo-group, app_names=[], namespaces=[], route=^photo/(?P<page>\w+)/$) |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7fc6d4637650> |
wrapped_callback | <function photo at 0x7fc6d400d170> |
/opt/shkt/app/views.py
in photo
colleges = Theatre.objects.filter(type='college')
text = FlatPage.objects.all().filter(url='graduates')[0]
return render(request, 'graduates.html', locals())
def photo(request, page='1'):
groups = PhotoGroup.objects.all()
photos = Photo.objects.filter(group=page).order_by('-year__title').select_related()…
return render(request, 'photos.html', locals())
def panorama(request):
panoramas = Panorama.objects.all().order_by('sort')
return render(request, 'panorama.html', locals())
Variable | Value |
---|---|
groups | <QuerySet [<PhotoGroup: Сценическая практика>, <PhotoGroup: Классический танец>, <PhotoGroup: Дуэтно-классический танец>, <PhotoGroup: Народно-характерный танец>, <PhotoGroup: Актерское мастерство>, <PhotoGroup: Историко-бытовой танец>, <PhotoGroup: Подготовительное отделение>, <PhotoGroup: 80-летие Г.В. Ледяха>]> |
page | 'classic' |
request | <WSGIRequest: GET '/photo/classic/'> |
/usr/local/lib/python3.7/site-packages/django/db/models/manager.py
in manager_method
def check(self, **kwargs):
return []
@classmethod
def _get_queryset_methods(cls, queryset_class):
def create_method(name, method):
def manager_method(self, *args, **kwargs):
return getattr(self.get_queryset(), name)(*args, **kwargs)…
manager_method.__name__ = method.__name__
manager_method.__doc__ = method.__doc__
return manager_method
new_methods = {}
for name, method in inspect.getmembers(queryset_class, predicate=inspect.isfunction):
Variable | Value |
---|---|
args | () |
kwargs | {'group': 'classic'} |
name | 'filter' |
self | <django.db.models.manager.Manager object at 0x7fc6d3f3f090> |
/usr/local/lib/python3.7/site-packages/django/db/models/query.py
in filter
def filter(self, *args, **kwargs):
"""
Return a new QuerySet instance with the args ANDed to the existing
set.
"""
self._not_support_combined_queries('filter')
return self._filter_or_exclude(False, *args, **kwargs)…
def exclude(self, *args, **kwargs):
"""
Return a new QuerySet instance with NOT (args) ANDed to the existing
set.
"""
Variable | Value |
---|---|
args | () |
kwargs | {'group': 'classic'} |
self | <QuerySet [<Photo: "Алеман". Вальс втроем>, <Photo: Кан-кан. Оффенбах>, <Photo: "Дождик мой друг">, <Photo: Хореографический этюд "Веселые лягушата">, <Photo: Сигидилия из балета "Дон Кихот">, <Photo: "Маленькие сильфиды">, <Photo: Полонез из оперы "Иван Сусанин">, <Photo: "Сотворение мира" (фрагмент урока актерского мастерства)>, <Photo: Восточный танец - фрагмент хореографической композиции на музыку Й. Штрауса>, <Photo: «Маленькая ночная серенада»>, <Photo: «Маленькая ночная серенада»>, <Photo: «Маленькая ночная серенада»>, <Photo: Хореографическая композиция на музыку Д. Россини>, <Photo: "Щелкунчик">, <Photo: "Щелкунчик">, <Photo: "Щелкунчик">, <Photo: "Щелкунчик">, <Photo: "Щелкунчик">, <Photo: "Щелкунчик">, <Photo: «Маленькая ночная серенада»>, '...(remaining elements truncated)...']> |
/usr/local/lib/python3.7/site-packages/django/db/models/query.py
in _filter_or_exclude
assert not self.query.is_sliced, \
"Cannot filter a query once a slice has been taken."
clone = self._chain()
if negate:
clone.query.add_q(~Q(*args, **kwargs))
else:
clone.query.add_q(Q(*args, **kwargs))…
return clone
def complex_filter(self, filter_obj):
"""
Return a new QuerySet instance with filter_obj added to the filters.
Variable | Value |
---|---|
args | () |
clone | <QuerySet [<Photo: "Алеман". Вальс втроем>, <Photo: Кан-кан. Оффенбах>, <Photo: "Дождик мой друг">, <Photo: Хореографический этюд "Веселые лягушата">, <Photo: Сигидилия из балета "Дон Кихот">, <Photo: "Маленькие сильфиды">, <Photo: Полонез из оперы "Иван Сусанин">, <Photo: "Сотворение мира" (фрагмент урока актерского мастерства)>, <Photo: Восточный танец - фрагмент хореографической композиции на музыку Й. Штрауса>, <Photo: «Маленькая ночная серенада»>, <Photo: «Маленькая ночная серенада»>, <Photo: «Маленькая ночная серенада»>, <Photo: Хореографическая композиция на музыку Д. Россини>, <Photo: "Щелкунчик">, <Photo: "Щелкунчик">, <Photo: "Щелкунчик">, <Photo: "Щелкунчик">, <Photo: "Щелкунчик">, <Photo: "Щелкунчик">, <Photo: «Маленькая ночная серенада»>, '...(remaining elements truncated)...']> |
kwargs | {'group': 'classic'} |
negate | False |
self | <QuerySet [<Photo: "Алеман". Вальс втроем>, <Photo: Кан-кан. Оффенбах>, <Photo: "Дождик мой друг">, <Photo: Хореографический этюд "Веселые лягушата">, <Photo: Сигидилия из балета "Дон Кихот">, <Photo: "Маленькие сильфиды">, <Photo: Полонез из оперы "Иван Сусанин">, <Photo: "Сотворение мира" (фрагмент урока актерского мастерства)>, <Photo: Восточный танец - фрагмент хореографической композиции на музыку Й. Штрауса>, <Photo: «Маленькая ночная серенада»>, <Photo: «Маленькая ночная серенада»>, <Photo: «Маленькая ночная серенада»>, <Photo: Хореографическая композиция на музыку Д. Россини>, <Photo: "Щелкунчик">, <Photo: "Щелкунчик">, <Photo: "Щелкунчик">, <Photo: "Щелкунчик">, <Photo: "Щелкунчик">, <Photo: "Щелкунчик">, <Photo: «Маленькая ночная серенада»>, '...(remaining elements truncated)...']> |
/usr/local/lib/python3.7/site-packages/django/db/models/sql/query.py
in add_q
# For join promotion this case is doing an AND for the added q_object
# and existing conditions. So, any existing inner join forces the join
# type to remain inner. Existing outer joins can however be demoted.
# (Consider case where rel_a is LOUTER and rel_a__col=1 is added - if
# rel_a doesn't produce any rows, then the whole condition must fail.
# So, demotion is OK.
existing_inner = {a for a in self.alias_map if self.alias_map[a].join_type == INNER}
clause, _ = self._add_q(q_object, self.used_aliases)…
if clause:
self.where.add(clause, AND)
self.demote_joins(existing_inner)
def build_where(self, q_object):
return self._add_q(q_object, used_aliases=set(), allow_joins=False, simple_col=True)[0]
Variable | Value |
---|---|
existing_inner | set() |
q_object | <Q: (AND: ('group', 'classic'))> |
self | <django.db.models.sql.query.Query object at 0x7fc6d3bf2910> |
/usr/local/lib/python3.7/site-packages/django/db/models/sql/query.py
in _add_q
)
joinpromoter.add_votes(needed_inner)
else:
child_clause, needed_inner = self.build_filter(
child, can_reuse=used_aliases, branch_negated=branch_negated,
current_negated=current_negated, allow_joins=allow_joins,
split_subq=split_subq, simple_col=simple_col,
check_filterable=check_filterable,…
)
joinpromoter.add_votes(needed_inner)
if child_clause:
target_clause.add(child_clause, connector)
needed_inner = joinpromoter.update_join_types(self)
return target_clause, needed_inner
Variable | Value |
---|---|
allow_joins | True |
branch_negated | False |
check_filterable | True |
child | ('group', 'classic') |
connector | 'AND' |
current_negated | False |
joinpromoter | <django.db.models.sql.query.JoinPromoter object at 0x7fc6d3bf2810> |
q_object | <Q: (AND: ('group', 'classic'))> |
self | <django.db.models.sql.query.Query object at 0x7fc6d3bf2910> |
simple_col | False |
split_subq | True |
target_clause | <WhereNode: (AND: )> |
used_aliases | {'app_photo'} |
/usr/local/lib/python3.7/site-packages/django/db/models/sql/query.py
in build_filter
if len(targets) == 1:
col = _get_col(targets[0], join_info.final_field, alias, simple_col)
else:
col = MultiColSource(alias, targets, join_info.targets, join_info.final_field)
else:
col = _get_col(targets[0], join_info.final_field, alias, simple_col)
condition = self.build_lookup(lookups, col, value)…
lookup_type = condition.lookup_name
clause.add(condition, AND)
require_outer = lookup_type == 'isnull' and condition.rhs is True and not current_negated
if current_negated and (lookup_type != 'isnull' or condition.rhs is False) and condition.rhs is not None:
require_outer = True
Variable | Value |
---|---|
alias | 'app_photo' |
allow_joins | True |
allow_many | True |
arg | 'group' |
branch_negated | False |
can_reuse | {'app_photo'} |
check_filterable | True |
clause | <WhereNode: (AND: )> |
col | Col(app_photo, app.Photo.group) |
current_negated | False |
filter_expr | ('group', 'classic') |
join_info | JoinInfo(final_field=<django.db.models.fields.related.ForeignKey: group>, targets=(<django.db.models.fields.AutoField: id>,), opts=<Options for PhotoGroup>, joins=['app_photo', 'app_photogroup'], path=[PathInfo(from_opts=<Options for Photo>, to_opts=<Options for PhotoGroup>, target_fields=(<django.db.models.fields.AutoField: id>,), join_field=<django.db.models.fields.related.ForeignKey: group>, m2m=False, direct=True, filtered_relation=None)], transform_function=<function Query.setup_joins.<locals>.final_transformer at 0x7fc6d3fa8e60>) |
join_list | ['app_photo'] |
lookups | [] |
num_lookups | 0 |
opts | <Options for Photo> |
parts | ['group'] |
pre_joins | {} |
reffed_expression | False |
reuse_with_filtered_relation | False |
self | <django.db.models.sql.query.Query object at 0x7fc6d3bf2910> |
simple_col | False |
split_subq | True |
targets | (<django.db.models.fields.related.ForeignKey: group>,) |
used_joins | {'app_photogroup', 'app_photo'} |
value | 'classic' |
/usr/local/lib/python3.7/site-packages/django/db/models/sql/query.py
in build_lookup
# and do an Exact lookup against it.
lhs = self.try_transform(lhs, lookup_name)
lookup_name = 'exact'
lookup_class = lhs.get_lookup(lookup_name)
if not lookup_class:
return
lookup = lookup_class(lhs, rhs)…
# Interpret '__exact=None' as the sql 'is NULL'; otherwise, reject all
# uses of None as a query value unless the lookup supports it.
if lookup.rhs is None and not lookup.can_use_none_as_rhs:
if lookup_name not in ('exact', 'iexact'):
raise ValueError("Cannot use None as a query value")
return lhs.get_lookup('isnull')(lhs, True)
Variable | Value |
---|---|
lhs | Col(app_photo, app.Photo.group) |
lookup_class | <class 'django.db.models.fields.related_lookups.RelatedExact'> |
lookup_name | 'exact' |
lookups | [] |
rhs | 'classic' |
self | <django.db.models.sql.query.Query object at 0x7fc6d3bf2910> |
transforms | [] |
/usr/local/lib/python3.7/site-packages/django/db/models/lookups.py
in __init__
class Lookup:
lookup_name = None
prepare_rhs = True
can_use_none_as_rhs = False
def __init__(self, lhs, rhs):
self.lhs, self.rhs = lhs, rhs
self.rhs = self.get_prep_lookup()…
if hasattr(self.lhs, 'get_bilateral_transforms'):
bilateral_transforms = self.lhs.get_bilateral_transforms()
else:
bilateral_transforms = []
if bilateral_transforms:
# Warn the user as soon as possible if they are trying to apply
Variable | Value |
---|---|
lhs | Col(app_photo, app.Photo.group) |
rhs | 'classic' |
self | <django.db.models.fields.related_lookups.RelatedExact object at 0x7fc6d3bf2ad0> |
/usr/local/lib/python3.7/site-packages/django/db/models/fields/related_lookups.py
in get_prep_lookup
# ForeignKey to IntegerField given value 'abc'. The ForeignKey itself
# doesn't have validation for non-integers, so we must run validation
# using the target field.
if self.prepare_rhs and hasattr(self.lhs.output_field, 'get_path_info'):
# Get the target field. We can safely assume there is only one
# as we don't get to the direct value branch otherwise.
target_field = self.lhs.output_field.get_path_info()[-1].target_fields[-1]
self.rhs = target_field.get_prep_value(self.rhs)…
return super().get_prep_lookup()
def as_sql(self, compiler, connection):
if isinstance(self.lhs, MultiColSource):
assert self.rhs_is_direct_value()
Variable | Value |
---|---|
__class__ | <class 'django.db.models.fields.related_lookups.RelatedLookupMixin'> |
self | <django.db.models.fields.related_lookups.RelatedExact object at 0x7fc6d3bf2ad0> |
target_field | <django.db.models.fields.AutoField: id> |
/usr/local/lib/python3.7/site-packages/django/db/models/fields/__init__.py
in get_prep_value
if value is None:
return None
try:
return int(value)
except (TypeError, ValueError) as e:
raise e.__class__(
"Field '%s' expected a number but got %r." % (self.name, value),
) from e…
def get_internal_type(self):
return "IntegerField"
def to_python(self, value):
if value is None:
Variable | Value |
---|---|
__class__ | <class 'django.db.models.fields.IntegerField'> |
self | <django.db.models.fields.AutoField: id> |
value | 'classic' |
AnonymousUser
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
HTTP_ACCEPT | '*/*' |
HTTP_CONNECTION | 'close' |
HTTP_HOST | 'ledyahcollege.ru' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_X_FORWARDED_FOR | '44.200.240.205, 172.19.0.1' |
HTTP_X_REAL_IP | '44.200.240.205' |
PATH_INFO | '/photo/classic/' |
QUERY_STRING | '' |
RAW_URI | '/photo/classic/' |
REMOTE_ADDR | '127.0.0.1' |
REMOTE_PORT | '48158' |
REQUEST_METHOD | 'GET' |
SCRIPT_NAME | '' |
SERVER_NAME | '127.0.0.1' |
SERVER_PORT | '8000' |
SERVER_PROTOCOL | 'HTTP/1.0' |
SERVER_SOFTWARE | 'gunicorn/19.9.0' |
gunicorn.socket | <gevent._socket3.socket at 0x7fc6d3b86c20 object, fd=11, family=2, type=1, proto=6> |
wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7fc6d3c6cf10> |
wsgi.file_wrapper | '' |
wsgi.input | <gunicorn.http.body.Body object at 0x7fc6d3d23810> |
wsgi.multiprocess | True |
wsgi.multithread | True |
wsgi.run_once | False |
wsgi.url_scheme | 'http' |
wsgi.version | (1, 0) |
shkt.settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ALLOWED_HOSTS | ['*', 'ledyahcollege.ru', 'new.ledyahcollege.ru', 'testing.ledyahcollege.ru', 'localhost', '0.0.0.0', '127.0.0.1'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
BASE_DIR | '/opt/shkt' |
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': '/opt/shkt/db/ledyah.db', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, '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', '%Y-%m-%d', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%Y', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M', '%m/%d/%y'] |
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_CHARSET | 'utf-8' |
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_CHARSET | 'utf-8' |
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' |
FRONTEND_DIR | '/opt/shkt/frontend' |
IGNORABLE_404_URLS | [] |
IMAGEKIT_CACHEFILE_DIR | 'CACHE/images' |
IMAGEKIT_CACHEFILE_NAMER | 'imagekit.cachefiles.namers.hash' |
IMAGEKIT_CACHE_BACKEND | 'default' |
IMAGEKIT_CACHE_PREFIX | 'imagekit:' |
IMAGEKIT_CACHE_TIMEOUT | 300 |
IMAGEKIT_DEFAULT_CACHEFILE_BACKEND | 'imagekit.cachefiles.backends.Simple' |
IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY | 'imagekit.cachefiles.strategies.JustInTime' |
IMAGEKIT_DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
IMAGEKIT_SPEC_CACHEFILE_NAMER | 'imagekit.cachefiles.namers.source_name_as_path' |
IMAGEKIT_USE_MEMCACHED_SAFE_CACHE_KEY | '********************' |
INSTALLED_APPS | ['app', 'redactor', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'imagekit', 'webpack_loader'] |
INTERNAL_IPS | [] |
LANGUAGES | [('af', 'Afrikaans'), ('ar', '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'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('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'), ('th', 'Thai'), ('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', '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 | '/var/www/media' |
MEDIA_URL | '/media/' |
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_DAYS | '********************' |
PREPEND_WWW | False |
REDACTOR_OPTIONS | {'buttons': ['html', 'alignment', 'format', 'bold', 'italic', 'deleted', 'lists', 'clips', 'image', 'file', 'link', 'gallery'], 'clips': [['Серый курсив', '<span class="description">Серый курсив</span>']], 'fileManagerDelete': '/redactor/file/delete', 'fileManagerJson': '/redactor/file/list', 'formatting': ['p', 'h2', 'h3'], 'imageFigure': False, 'imageManagerDelete': '/redactor/image/delete', 'imageManagerJson': '/redactor/image/list', 'imagePosition': True, 'imageResizable': True, 'lang': 'ru', 'linkNewTab': 'true', 'multipleUpload': 0, 'plugins': ['alignment', 'clips', 'imagemanager', 'filemanager', 'gallery'], 'stylesClass': 'admin-styles'} |
REDACTOR_UPLOAD | 'attachments/' |
ROOT_URLCONF | 'shkt.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 | None |
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 | 'shkt.settings' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
STATICFILES_DIRS | [('bundles', '/opt/shkt/bundles')] |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | '/var/www/static' |
STATIC_URL | '/static/' |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages', 'app.views.menu']}}] |
TEST_NON_SERIALIZED_APPS | [] |
TEST_RUNNER | 'django.test.runner.DiscoverRunner' |
THOUSAND_SEPARATOR | ',' |
THUMBNAIL_DEBUG | False |
THUMBNAIL_KVSTORE | 'sorl.thumbnail.kvstores.redis_kvstore.KVStore' |
TIME_FORMAT | 'P' |
TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
TIME_ZONE | 'UTC' |
USE_I18N | True |
USE_L10N | True |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | True |
USE_X_FORWARDED_HOST | False |
USE_X_FORWARDED_PORT | False |
WEBPACK_LOADER | {'DEFAULT': {'BUNDLE_DIR_NAME': 'bundles/', 'CACHE': False, 'IGNORE': ['.+\\.hot-update.js', '.+\\.map'], 'POLL_INTERVAL': 0.1, 'STATS_FILE': '/opt/shkt/bundles/manifest.json', 'TIMEOUT': None}} |
WEBPACK_STATS | '/opt/shkt/bundles/manifest.json' |
WSGI_APPLICATION | 'shkt.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.