invalid literal for int() with base 10: '8/'
Request Method: | GET |
---|---|
Request URL: | https://diamend.com.cn/shop/search/?a=show&classId=8/ |
Django Version: | 2.1.5 |
Exception Type: | ValueError |
Exception Value: | invalid literal for int() with base 10: '8/' |
Exception Location: | /data/app/web/venv/lib/python3.6/site-packages/django/db/models/fields/__init__.py in get_prep_value, line 965 |
Python Executable: | /data/app/web/venv/bin/uwsgi |
Python Version: | 3.6.8 |
Python Path: | ['.', '', '/usr/lib64/python36.zip', '/usr/lib64/python3.6', '/usr/lib64/python3.6/lib-dynload', '/data/app/web/venv/lib64/python3.6/site-packages', '/data/app/web/venv/lib/python3.6/site-packages'] |
Server time: | 星期五, 29 三月 2024 20:42:09 +0800 |
/data/app/web/venv/lib/python3.6/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("invalid literal for int() with base 10: '8/'",) |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f7ab87cf400>> |
request | <WSGIRequest: GET '/shop/search/?a=show&classId=8/'> |
/data/app/web/venv/lib/python3.6/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 search at 0x7f7ab5a02268> |
callback_args | () |
callback_kwargs | {} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7f7ab7cf7518>> |
request | <WSGIRequest: GET '/shop/search/?a=show&classId=8/'> |
resolver | <URLResolver 'DiamendWeb.urls' (None:None) '^/'> |
resolver_match | ResolverMatch(func=shop.views.search, args=(), kwargs={}, url_name=search, app_names=['shop'], namespaces=['shop']) |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f7ab87cf400> |
wrapped_callback | <function search at 0x7f7ab5a02268> |
/data/app/web/venv/lib/python3.6/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 search at 0x7f7ab5a02268> |
callback_args | () |
callback_kwargs | {} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7f7ab7cf7518>> |
request | <WSGIRequest: GET '/shop/search/?a=show&classId=8/'> |
resolver | <URLResolver 'DiamendWeb.urls' (None:None) '^/'> |
resolver_match | ResolverMatch(func=shop.views.search, args=(), kwargs={}, url_name=search, app_names=['shop'], namespaces=['shop']) |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f7ab87cf400> |
wrapped_callback | <function search at 0x7f7ab5a02268> |
./shop/views.py
in search
(searchText in temp_p.subtitle) or
(searchText == temp_p.product_code)) and
temp_p.status != -1
):
all_list.append(temp_p)
elif action == 'show':
# 展示 预设ID
classshow = ClassShow.objects.get(id=searchClassId)...
p_list = json.loads(classshow.products)
for p_id in p_list:
try:
p_temp = Product.objects.get(id=p_id)
except Product.DoesNotExist:
continue
Variable | Value |
---|---|
ClassImg | None |
action | 'show' |
all_list | [] |
classNum | None |
page | '1' |
request | <WSGIRequest: GET '/shop/search/?a=show&classId=8/'> |
searchBrand | None |
searchClassId | '8/' |
searchStartBrandId | 29 |
searchText | '' |
/data/app/web/venv/lib/python3.6/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 | {'id': '8/'} |
name | 'get' |
self | <django.db.models.manager.Manager object at 0x7f7ab4af0c18> |
/data/app/web/venv/lib/python3.6/site-packages/django/db/models/query.py
in get
return self.query.get_count(using=self.db)
def get(self, *args, **kwargs):
"""
Perform the query and return a single object matching the given
keyword arguments.
"""
clone = self.filter(*args, **kwargs)...
if self.query.can_filter() and not self.query.distinct_fields:
clone = clone.order_by()
num = len(clone)
if num == 1:
return clone._result_cache[0]
if not num:
Variable | Value |
---|---|
args | () |
kwargs | {'id': '8/'} |
self | <QuerySet [<ClassShow: ClassShow object (8)>, <ClassShow: ClassShow object (9)>, <ClassShow: ClassShow object (10)>, <ClassShow: ClassShow object (11)>, <ClassShow: ClassShow object (13)>, <ClassShow: ClassShow object (14)>, <ClassShow: ClassShow object (15)>, <ClassShow: ClassShow object (16)>, <ClassShow: ClassShow object (19)>]> |
/data/app/web/venv/lib/python3.6/site-packages/django/db/models/query.py
in filter
return self._chain()
def filter(self, *args, **kwargs):
"""
Return a new QuerySet instance with the args ANDed to the existing
set.
"""
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 | {'id': '8/'} |
self | <QuerySet [<ClassShow: ClassShow object (8)>, <ClassShow: ClassShow object (9)>, <ClassShow: ClassShow object (10)>, <ClassShow: ClassShow object (11)>, <ClassShow: ClassShow object (13)>, <ClassShow: ClassShow object (14)>, <ClassShow: ClassShow object (15)>, <ClassShow: ClassShow object (16)>, <ClassShow: ClassShow object (19)>]> |
/data/app/web/venv/lib/python3.6/site-packages/django/db/models/query.py
in _filter_or_exclude
assert self.query.can_filter(), \
"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 [<ClassShow: ClassShow object (8)>, <ClassShow: ClassShow object (9)>, <ClassShow: ClassShow object (10)>, <ClassShow: ClassShow object (11)>, <ClassShow: ClassShow object (13)>, <ClassShow: ClassShow object (14)>, <ClassShow: ClassShow object (15)>, <ClassShow: ClassShow object (16)>, <ClassShow: ClassShow object (19)>]> |
kwargs | {'id': '8/'} |
negate | False |
self | <QuerySet [<ClassShow: ClassShow object (8)>, <ClassShow: ClassShow object (9)>, <ClassShow: ClassShow object (10)>, <ClassShow: ClassShow object (11)>, <ClassShow: ClassShow object (13)>, <ClassShow: ClassShow object (14)>, <ClassShow: ClassShow object (15)>, <ClassShow: ClassShow object (16)>, <ClassShow: ClassShow object (19)>]> |
/data/app/web/venv/lib/python3.6/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 _add_q(self, q_object, used_aliases, branch_negated=False,
current_negated=False, allow_joins=True, split_subq=True):
Variable | Value |
---|---|
existing_inner | set() |
q_object | <Q: (AND: ('id', '8/'))> |
self | <django.db.models.sql.query.Query object at 0x7f7ab417e3c8> |
/data/app/web/venv/lib/python3.6/site-packages/django/db/models/sql/query.py
in _add_q
child, used_aliases, branch_negated,
current_negated, allow_joins, split_subq)
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,...
)
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 |
child | ('id', '8/') |
connector | 'AND' |
current_negated | False |
joinpromoter | <django.db.models.sql.query.JoinPromoter object at 0x7f7ab417e0f0> |
q_object | <Q: (AND: ('id', '8/'))> |
self | <django.db.models.sql.query.Query object at 0x7f7ab417e3c8> |
split_subq | True |
target_clause | <WhereNode: (AND: )> |
used_aliases | {'shop_classshow'} |
/data/app/web/venv/lib/python3.6/site-packages/django/db/models/sql/query.py
in build_filter
if len(targets) == 1:
col = targets[0].get_col(alias, join_info.final_field)
else:
col = MultiColSource(alias, targets, join_info.targets, join_info.final_field)
else:
col = targets[0].get_col(alias, join_info.final_field)
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 | 'shop_classshow' |
allow_joins | True |
allow_many | True |
arg | 'id' |
branch_negated | False |
can_reuse | {'shop_classshow'} |
clause | <WhereNode: (AND: )> |
col | Col(shop_classshow, shop.ClassShow.id) |
current_negated | False |
filter_expr | ('id', '8/') |
join_info | JoinInfo(final_field=<django.db.models.fields.AutoField: id>, targets=(<django.db.models.fields.AutoField: id>,), opts=<Options for ClassShow>, joins=['shop_classshow'], path=[], transform_function=<function Query.setup_joins.<locals>.final_transformer at 0x7f7ab7be6048>) |
join_list | ['shop_classshow'] |
lookups | [] |
opts | <Options for ClassShow> |
parts | ['id'] |
pre_joins | {} |
reffed_expression | False |
reuse_with_filtered_relation | False |
self | <django.db.models.sql.query.Query object at 0x7f7ab417e3c8> |
split_subq | True |
targets | (<django.db.models.fields.AutoField: id>,) |
used_joins | {'shop_classshow'} |
value | '8/' |
/data/app/web/venv/lib/python3.6/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(shop_classshow, shop.ClassShow.id) |
lookup_class | <class 'django.db.models.lookups.Exact'> |
lookup_name | 'exact' |
lookups | ['exact'] |
rhs | '8/' |
self | <django.db.models.sql.query.Query object at 0x7f7ab417e3c8> |
/data/app/web/venv/lib/python3.6/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(shop_classshow, shop.ClassShow.id) |
rhs | '8/' |
self | <django.db.models.lookups.Exact object at 0x7f7ab417e320> |
/data/app/web/venv/lib/python3.6/site-packages/django/db/models/lookups.py
in get_prep_lookup
else:
self.lhs, self.rhs = new_exprs
def get_prep_lookup(self):
if hasattr(self.rhs, '_prepare'):
return self.rhs._prepare(self.lhs.output_field)
if self.prepare_rhs and hasattr(self.lhs.output_field, 'get_prep_value'):
return self.lhs.output_field.get_prep_value(self.rhs)...
return self.rhs
def get_db_prep_lookup(self, value, connection):
return ('%s', [value])
def process_lhs(self, compiler, connection, lhs=None):
Variable | Value |
---|---|
self | <django.db.models.lookups.Exact object at 0x7f7ab417e320> |
/data/app/web/venv/lib/python3.6/site-packages/django/db/models/fields/__init__.py
in get_prep_value
return value
def get_prep_value(self, value):
from django.db.models.expressions import OuterRef
value = super().get_prep_value(value)
if value is None or isinstance(value, OuterRef):
return value
return int(value)...
def contribute_to_class(self, cls, name, **kwargs):
assert not cls._meta.auto_field, "Model %s can't have more than one AutoField." % cls._meta.label
super().contribute_to_class(cls, name, **kwargs)
cls._meta.auto_field = self
Variable | Value |
---|---|
OuterRef | <class 'django.db.models.expressions.OuterRef'> |
__class__ | <class 'django.db.models.fields.AutoField'> |
self | <django.db.models.fields.AutoField: id> |
value | '8/' |
[unable to retrieve the current user]
Variable | Value |
---|---|
a | 'show' |
classId | '8/' |
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
CONTENT_LENGTH | '' |
CONTENT_TYPE | '' |
DOCUMENT_ROOT | '/usr/share/nginx/html' |
HTTPS | 'on' |
HTTP_ACCEPT | '*/*' |
HTTP_HOST | 'diamend.com.cn' |
HTTP_REFERER | 'http://diamend.com.cn/shop/search/?a=show&classId=8' |
HTTP_USER_AGENT | 'claudebot' |
PATH_INFO | '/shop/search/' |
QUERY_STRING | 'a=show&classId=8/' |
REMOTE_ADDR | '3.239.239.71' |
REMOTE_PORT | '42706' |
REQUEST_METHOD | 'GET' |
REQUEST_SCHEME | 'https' |
REQUEST_URI | '/shop/search/?a=show&classId=8/' |
SCRIPT_NAME | '' |
SERVER_NAME | 'diamend.com.cn' |
SERVER_PORT | '443' |
SERVER_PROTOCOL | 'HTTP/1.1' |
uwsgi.core | 3 |
uwsgi.node | b'iZ2zedz3zzh3trnxrok7acZ' |
uwsgi.version | b'2.0.20' |
wsgi.errors | <_io.TextIOWrapper name=2 mode='w' encoding='UTF-8'> |
wsgi.file_wrapper | '' |
wsgi.input | <uwsgi._Input object at 0x7f7ab5a19d50> |
wsgi.multiprocess | True |
wsgi.multithread | True |
wsgi.run_once | False |
wsgi.url_scheme | 'https' |
wsgi.version | (1, 0) |
DiamendWeb.settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ALLOWED_HOSTS | ['*'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
BASE_DIR | '/data/app/web' |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
CAPTCHA_FONT_SIZE | 40 |
CAPTCHA_IMAGE_SIZE | (200, 60) |
CAPTCHA_LENGTH | 4 |
CAPTCHA_NOISE_FUNCTIONS | ('captcha.helpers.noise_arcs', 'captcha.helpers.noise_dots') |
CAPTCHA_TIMEOUT | 10 |
CORS_ALLOW_CREDENTIALS | True |
CORS_ALLOW_HEADERS | ('XMLHttpRequest', 'X_FILENAME', 'accept-encoding', 'authorization', 'content-type', 'dnt', 'origin', 'user-agent', 'x-csrftoken', 'x-requested-with') |
CORS_ALLOW_METHODS | ('DELETE', 'GET', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'VIEW') |
CORS_ORIGIN_ALLOW_ALL | True |
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.mysql', 'HOST': '127.0.0.1', 'NAME': 'diamend_web', 'OPTIONS': {'charset': 'utf8'}, 'PASSWORD': '********************', 'PORT': '3306', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'diamend'}} |
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_CONTENT_TYPE | 'text/html' |
DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
DEFAULT_FROM_EMAIL | '戴梦得服务中心 <service@diamend.com.cn>' |
DEFAULT_INDEX_TABLESPACE | '' |
DEFAULT_REDIRECT | '/shop/' |
DEFAULT_TABLESPACE | '' |
DISALLOWED_USER_AGENTS | [] |
EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
EMAIL_HOST | 'mail.diamend.com.cn' |
EMAIL_HOST_PASSWORD | '********************' |
EMAIL_HOST_USER | 'service' |
EMAIL_PORT | 465 |
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 | None |
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 | ['django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'corsheaders', 'index', 'shop', 'account', 'product', 'admin', 'captcha', 'notice', 'pay'] |
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'), ('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'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] |
LANGUAGES_BIDI | ['he', 'ar', 'fa', 'ur'] |
LANGUAGE_CODE | 'zh-hans' |
LANGUAGE_COOKIE_AGE | None |
LANGUAGE_COOKIE_DOMAIN | None |
LANGUAGE_COOKIE_NAME | 'django_language' |
LANGUAGE_COOKIE_PATH | '/' |
LOCALE_PATHS | [] |
LOGGING | {} |
LOGGING_CONFIG | 'logging.config.dictConfig' |
LOGIN_REDIRECT_URL | '/accounts/profile/' |
LOGIN_URL | '/accounts/login/' |
LOGOUT_REDIRECT_URL | None |
MANAGERS | [] |
MEDIA_ROOT | '/data/app/web/media/' |
MEDIA_URL | '/media/' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
MIDDLEWARE | ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', '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 |
ROOT_URLCONF | 'DiamendWeb.urls' |
SECRET_KEY | '********************' |
SECURE_BROWSER_XSS_FILTER | False |
SECURE_CONTENT_TYPE_NOSNIFF | False |
SECURE_HSTS_INCLUDE_SUBDOMAINS | False |
SECURE_HSTS_PRELOAD | False |
SECURE_HSTS_SECONDS | 0 |
SECURE_PROXY_SSL_HEADER | ('HTTP_X_FORWARDED_PROTOCOL', 'https') |
SECURE_REDIRECT_EXEMPT | [] |
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 | False |
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 | 'DiamendWeb.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 | ['/data/app/web/templates/static', '/data/app/web/admin/static'] |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'DiamendWeb.storage.ForgivingManifestStaticFilesStorage' |
STATIC_ROOT | '/data/app/web/static_on_run/' |
STATIC_URL | '/static/' |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/data/app/web/templates'], 'OPTIONS': {'builtins': ['django.templatetags.static'], 'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.messages.context_processors.messages', 'DiamendWeb.context_processor.top5products']}}] |
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 | 'Asia/Shanghai' |
USE_I18N | True |
USE_L10N | False |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | True |
USE_X_FORWARDED_HOST | False |
USE_X_FORWARDED_PORT | False |
WSGI_APPLICATION | 'DiamendWeb.wsgi.application' |
X_FRAME_OPTIONS | 'SAMEORIGIN' |
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.