object of type 'NoneType' has no len()
Request Method: | GET |
---|---|
Request URL: | http://127.0.0.1:80/tag/%25E5%25A5%25B3%25E7%2594%259F%25E6%25B6%2588%25E8%25B4%25B9%25E4%25B9%25A0%25E6%2583%25AF/ |
Django Version: | 4.2.7 |
Exception Type: | TypeError |
Exception Value: | object of type 'NoneType' has no len() |
Exception Location: | /www/server/pyporject_evn/default_venv/lib/python3.11/site-packages/django/core/paginator.py, line 94, in count |
Raised during: | post.views.TagView |
Python Executable: | /www/server/pyporject_evn/default_venv/bin/python3 |
Python Version: | 3.11.4 |
Python Path: | ['/www/wwwroot/default', '/www/server/panel', '/www/server/pyporject_evn/default_venv/bin', '/www/server/pyporject_evn/default_venv/lib/python311.zip', '/www/server/pyporject_evn/default_venv/lib/python3.11', '/www/server/pyporject_evn/default_venv/lib/python3.11/lib-dynload', '/www/server/pyporject_evn/default_venv/lib/python3.11/site-packages'] |
Server time: | Thu, 28 Mar 2024 17:42:47 +0800 |
/www/server/pyporject_evn/default_venv/lib/python3.11/site-packages/django/core/handlers/exception.py
, line 55, in inner
return inner
else:
@wraps(get_response)
def inner(request):
try:
response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^…
except Exception as exc:
response = response_for_exception(request, exc)
return response
return inner
Variable | Value |
---|---|
exc | TypeError("object of type 'NoneType' has no len()") |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f7d1e95c310>> |
request | <WSGIRequest: GET '/tag/%25E5%25A5%25B3%25E7%2594%259F%25E6%25B6%2588%25E8%25B4%25B9%25E4%25B9%25A0%25E6%2583%25AF/'> |
/www/server/pyporject_evn/default_venv/lib/python3.11/site-packages/django/core/handlers/base.py
, line 197, in _get_response
if response is None:
wrapped_callback = self.make_view_atomic(callback)
# If it is an asynchronous view, run it in a subthread.
if iscoroutinefunction(wrapped_callback):
wrapped_callback = async_to_sync(wrapped_callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
except Exception as e:
response = self.process_exception_by_middleware(e, request)
if response is None:
raise
# Complain if the view returned None (a common error).
Variable | Value |
---|---|
callback | <function View.as_view.<locals>.view at 0x7f7d1d136840> |
callback_args | () |
callback_kwargs | {'p': '%E5%A5%B3%E7%94%9F%E6%B6%88%E8%B4%B9%E4%B9%A0%E6%83%AF'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>> |
request | <WSGIRequest: GET '/tag/%25E5%25A5%25B3%25E7%2594%259F%25E6%25B6%2588%25E8%25B4%25B9%25E4%25B9%25A0%25E6%2583%25AF/'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f7d1e95c310> |
wrapped_callback | <function View.as_view.<locals>.view at 0x7f7d1d136840> |
/www/server/pyporject_evn/default_venv/lib/python3.11/site-packages/django/views/generic/base.py
, line 104, in view
self = cls(**initkwargs)
self.setup(request, *args, **kwargs)
if not hasattr(self, "request"):
raise AttributeError(
"%s instance has no 'request' attribute. Did you override "
"setup() and forget to call super()?" % cls.__name__
)
return self.dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
view.view_class = cls
view.view_initkwargs = initkwargs
# __name__ and __qualname__ are intentionally left unchanged as
# view_class should be used to robustly determine the name of the view
Variable | Value |
---|---|
args | () |
cls | <class 'post.views.TagView'> |
initkwargs | {} |
kwargs | {'p': '%E5%A5%B3%E7%94%9F%E6%B6%88%E8%B4%B9%E4%B9%A0%E6%83%AF'} |
request | <WSGIRequest: GET '/tag/%25E5%25A5%25B3%25E7%2594%259F%25E6%25B6%2588%25E8%25B4%25B9%25E4%25B9%25A0%25E6%2583%25AF/'> |
self | <post.views.TagView object at 0x7f7d1ca05f50> |
/www/server/pyporject_evn/default_venv/lib/python3.11/site-packages/django/views/generic/base.py
, line 143, in dispatch
# request method isn't on the approved list.
if request.method.lower() in self.http_method_names:
handler = getattr(
self, request.method.lower(), self.http_method_not_allowed
)
else:
handler = self.http_method_not_allowed
return handler(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
def http_method_not_allowed(self, request, *args, **kwargs):
logger.warning(
"Method Not Allowed (%s): %s",
request.method,
request.path,
Variable | Value |
---|---|
args | () |
handler | <bound method BaseListView.get of <post.views.TagView object at 0x7f7d1ca05f50>> |
kwargs | {'p': '%E5%A5%B3%E7%94%9F%E6%B6%88%E8%B4%B9%E4%B9%A0%E6%83%AF'} |
request | <WSGIRequest: GET '/tag/%25E5%25A5%25B3%25E7%2594%259F%25E6%25B6%2588%25E8%25B4%25B9%25E4%25B9%25A0%25E6%2583%25AF/'> |
self | <post.views.TagView object at 0x7f7d1ca05f50> |
/www/server/pyporject_evn/default_venv/lib/python3.11/site-packages/django/views/generic/list.py
, line 174, in get
if is_empty:
raise Http404(
_("Empty list and “%(class_name)s.allow_empty” is False.")
% {
"class_name": self.__class__.__name__,
}
)
context = self.get_context_data() ^^^^^^^^^^^^^^^^^^^^^^^…
return self.render_to_response(context)
class MultipleObjectTemplateResponseMixin(TemplateResponseMixin):
"""Mixin for responding with a template and list of objects."""
Variable | Value |
---|---|
allow_empty | True |
args | () |
kwargs | {'p': '%E5%A5%B3%E7%94%9F%E6%B6%88%E8%B4%B9%E4%B9%A0%E6%83%AF'} |
request | <WSGIRequest: GET '/tag/%25E5%25A5%25B3%25E7%2594%259F%25E6%25B6%2588%25E8%25B4%25B9%25E4%25B9%25A0%25E6%2583%25AF/'> |
self | <post.views.TagView object at 0x7f7d1ca05f50> |
/www/wwwroot/default/post/views.py
, line 140, in get_context_data
kwargs['user_list'] = User.objects.all()
kwargs['userprofile_list'] = UserProfile.objects.all()
kwargs['category_list'] = Category.objects.all().values('post_category').annotate(c=Count('post__is_publish')).values('post_category','c').order_by('id')
kwargs['new_post'] = Post.objects.filter(is_publish=True).order_by('-create_time')[:4]
kwargs['popular_post'] = Post.objects.filter(is_publish=True).order_by('-total_views')[:4]
content = super(TagView, self).get_context_data(**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
if not content.get('is_paginated',False):
return content
paginator = content.get('paginator')
num_pages = paginator.num_pages
current_page = content.get('page_obj')
Variable | Value |
---|---|
__class__ | <class 'post.views.TagView'> |
kwargs | {'block_list': <QuerySet [<Block: 侧边栏>, <Block: 信用卡相关页面、文章详情页底部>, <Block: 文章底部>]>, 'category_list': <QuerySet [{'post_category': '杂记', 'c': 133}, {'post_category': '技术', 'c': 69}, {'post_category': '贷款', 'c': 70}, {'post_category': '信用卡', 'c': 346}, {'post_category': '创业项目', 'c': 23}]>, 'nav_list': <QuerySet [<Nav: 创业项目>, <Nav: 企业融资>, <Nav: 信用卡在线申请>, <Nav: 银联POS机>, <Nav: 存档>]>, 'new_post': <QuerySet [<Post: 既然小学毕业的都能做销售工作,那为什么我们大学还要学习市场营销?>, <Post: 全方位指南:中信银行信用卡申请流程与注意事项>, <Post: 一键开通银联收款码,轻松拥抱无现金时代,掌握收款新技能!>, <Post: 银联收款码新篇章:解码未来支付发展趋势,重塑商业格局>]>, 'popular_post': <QuerySet [<Post: 7TEC简洁主题,2021年3月2日更新,增加了侧边栏标签功能……>, <Post: 流量是做成一件事的底层逻辑>, <Post: 重新自定义typecho头像>, <Post: 2024年想在支付行业创业一定要做瑞升达!>]>, 'tag': None, 'user_list': <QuerySet [<User: yuzhiblue>]>, 'userprofile_list': <QuerySet [<UserProfile: UserProfile object (1)>]>, 'website': <Setting: 企泰7TEC.CN>} |
object_list | None |
self | <post.views.TagView object at 0x7f7d1ca05f50> |
/www/server/pyporject_evn/default_venv/lib/python3.11/site-packages/django/views/generic/list.py
, line 128, in get_context_data
def get_context_data(self, *, object_list=None, **kwargs):
"""Get the context for this view."""
queryset = object_list if object_list is not None else self.object_list
page_size = self.get_paginate_by(queryset)
context_object_name = self.get_context_object_name(queryset)
if page_size:
paginator, page, queryset, is_paginated = self.paginate_queryset(…
queryset, page_size
)
context = {
"paginator": paginator,
"page_obj": page,
"is_paginated": is_paginated,
Variable | Value |
---|---|
__class__ | <class 'django.views.generic.list.MultipleObjectMixin'> |
context_object_name | 'tag_post_list' |
kwargs | {'block_list': <QuerySet [<Block: 侧边栏>, <Block: 信用卡相关页面、文章详情页底部>, <Block: 文章底部>]>, 'category_list': <QuerySet [{'post_category': '杂记', 'c': 133}, {'post_category': '技术', 'c': 69}, {'post_category': '贷款', 'c': 70}, {'post_category': '信用卡', 'c': 346}, {'post_category': '创业项目', 'c': 23}]>, 'nav_list': <QuerySet [<Nav: 创业项目>, <Nav: 企业融资>, <Nav: 信用卡在线申请>, <Nav: 银联POS机>, <Nav: 存档>]>, 'new_post': <QuerySet [<Post: 既然小学毕业的都能做销售工作,那为什么我们大学还要学习市场营销?>, <Post: 全方位指南:中信银行信用卡申请流程与注意事项>, <Post: 一键开通银联收款码,轻松拥抱无现金时代,掌握收款新技能!>, <Post: 银联收款码新篇章:解码未来支付发展趋势,重塑商业格局>]>, 'popular_post': <QuerySet [<Post: 7TEC简洁主题,2021年3月2日更新,增加了侧边栏标签功能……>, <Post: 流量是做成一件事的底层逻辑>, <Post: 重新自定义typecho头像>, <Post: 2024年想在支付行业创业一定要做瑞升达!>]>, 'tag': None, 'user_list': <QuerySet [<User: yuzhiblue>]>, 'userprofile_list': <QuerySet [<UserProfile: UserProfile object (1)>]>, 'website': <Setting: 企泰7TEC.CN>} |
object_list | None |
page_size | 12 |
queryset | None |
self | <post.views.TagView object at 0x7f7d1ca05f50> |
/www/server/pyporject_evn/default_venv/lib/python3.11/site-packages/django/views/generic/list.py
, line 73, in paginate_queryset
if page == "last":
page_number = paginator.num_pages
else:
raise Http404(
_("Page is not “last”, nor can it be converted to an int.")
)
try:
page = paginator.page(page_number) ^^^^^^^^^^^^^^^^^^^^^^^^^^^…
return (paginator, page, page.object_list, page.has_other_pages())
except InvalidPage as e:
raise Http404(
_("Invalid page (%(page_number)s): %(message)s")
% {"page_number": page_number, "message": str(e)}
)
Variable | Value |
---|---|
page | 1 |
page_kwarg | 'page' |
page_number | 1 |
page_size | 12 |
paginator | <django.core.paginator.Paginator object at 0x7f7d14a90090> |
queryset | None |
self | <post.views.TagView object at 0x7f7d1ca05f50> |
/www/server/pyporject_evn/default_venv/lib/python3.11/site-packages/django/core/paginator.py
, line 72, in page
number = 1
except EmptyPage:
number = self.num_pages
return self.page(number)
def page(self, number):
"""Return a Page object for the given 1-based page number."""
number = self.validate_number(number) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
bottom = (number - 1) * self.per_page
top = bottom + self.per_page
if top + self.orphans >= self.count:
top = self.count
return self._get_page(self.object_list[bottom:top], number, self)
Variable | Value |
---|---|
number | 1 |
self | <django.core.paginator.Paginator object at 0x7f7d14a90090> |
/www/server/pyporject_evn/default_venv/lib/python3.11/site-packages/django/core/paginator.py
, line 53, in validate_number
if isinstance(number, float) and not number.is_integer():
raise ValueError
number = int(number)
except (TypeError, ValueError):
raise PageNotAnInteger(_("That page number is not an integer"))
if number < 1:
raise EmptyPage(_("That page number is less than 1"))
if number > self.num_pages: ^^^^^^^^^^^^^^…
raise EmptyPage(_("That page contains no results"))
return number
def get_page(self, number):
"""
Return a valid page, even if the page argument isn't a number or isn't
Variable | Value |
---|---|
number | 1 |
self | <django.core.paginator.Paginator object at 0x7f7d14a90090> |
/www/server/pyporject_evn/default_venv/lib/python3.11/site-packages/django/utils/functional.py
, line 57, in __get__
"""
Call the function and put the return value in instance.__dict__ so that
subsequent attribute access on the instance returns the cached value
instead of calling cached_property.__get__().
"""
if instance is None:
return self
res = instance.__dict__[self.name] = self.func(instance) ^^^^^^^^^^^^^^^^^^^…
return res
class classproperty:
"""
Decorator that converts a method with a single cls argument into a property
Variable | Value |
---|---|
cls | <class 'django.core.paginator.Paginator'> |
instance | <django.core.paginator.Paginator object at 0x7f7d14a90090> |
self | <django.utils.functional.cached_property object at 0x7f7d1ff3f390> |
/www/server/pyporject_evn/default_venv/lib/python3.11/site-packages/django/core/paginator.py
, line 99, in num_pages
if callable(c) and not inspect.isbuiltin(c) and method_has_no_args(c):
return c()
return len(self.object_list)
@cached_property
def num_pages(self):
"""Return the total number of pages."""
if self.count == 0 and not self.allow_empty_first_page: ^^^^^^^^^^…
return 0
hits = max(1, self.count - self.orphans)
return ceil(hits / self.per_page)
@property
def page_range(self):
Variable | Value |
---|---|
self | <django.core.paginator.Paginator object at 0x7f7d14a90090> |
/www/server/pyporject_evn/default_venv/lib/python3.11/site-packages/django/utils/functional.py
, line 57, in __get__
"""
Call the function and put the return value in instance.__dict__ so that
subsequent attribute access on the instance returns the cached value
instead of calling cached_property.__get__().
"""
if instance is None:
return self
res = instance.__dict__[self.name] = self.func(instance) ^^^^^^^^^^^^^^^^^^^…
return res
class classproperty:
"""
Decorator that converts a method with a single cls argument into a property
Variable | Value |
---|---|
cls | <class 'django.core.paginator.Paginator'> |
instance | <django.core.paginator.Paginator object at 0x7f7d14a90090> |
self | <django.utils.functional.cached_property object at 0x7f7d1ff3f350> |
/www/server/pyporject_evn/default_venv/lib/python3.11/site-packages/django/core/paginator.py
, line 94, in count
@cached_property
def count(self):
"""Return the total number of objects, across all pages."""
c = getattr(self.object_list, "count", None)
if callable(c) and not inspect.isbuiltin(c) and method_has_no_args(c):
return c()
return len(self.object_list) ^^^^^^^^^^^^^^^^^^^^^…
@cached_property
def num_pages(self):
"""Return the total number of pages."""
if self.count == 0 and not self.allow_empty_first_page:
return 0
Variable | Value |
---|---|
c | None |
self | <django.core.paginator.Paginator object at 0x7f7d14a90090> |
AnonymousUser
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
HTTP_3866201F37129A160390FA5CE8C28466 | 'tag' |
HTTP_ACCEPT | '*/*' |
HTTP_AF1E610ACF8B1519D5752C3279FFA154 | 'tag' |
HTTP_CONNECTION | 'upgrade' |
HTTP_DD9D948FDBF300FB25AAFCA6918C8B2D | 'tag' |
HTTP_HOST | '127.0.0.1:80' |
HTTP_REMOTE_HOST | '39.145.32.162' |
HTTP_TENCENT_ACCELERATION_DOMAIN_NAME | '7tec.cn' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_X_FORWARDED_FOR | '34.204.177.148, 39.145.32.162' |
HTTP_X_FORWARDED_PROTO | 'http' |
HTTP_X_HOST | '7tec.cn:80' |
HTTP_X_NWS_LOG_UUID | '10675241712357939080' |
HTTP_X_REAL_IP | '39.145.32.162' |
HTTP_X_SCHEME | 'http' |
HTTP_X_TENCENT_UA | 'Qcloud' |
PATH_INFO | '/tag/%E5%A5%B3%E7%94%9F%E6%B6%88%E8%B4%B9%E4%B9%A0%E6%83%AF/' |
QUERY_STRING | '' |
RAW_URI | '/tag/%25E5%25A5%25B3%25E7%2594%259F%25E6%25B6%2588%25E8%25B4%25B9%25E4%25B9%25A0%25E6%2583%25AF/' |
REMOTE_ADDR | '127.0.0.1' |
REMOTE_PORT | '45388' |
REQUEST_METHOD | 'GET' |
SCRIPT_NAME | '' |
SERVER_NAME | '0.0.0.0' |
SERVER_PORT | '8001' |
SERVER_PROTOCOL | 'HTTP/1.1' |
SERVER_SOFTWARE | 'gunicorn/21.2.0' |
gunicorn.socket | <socket.socket fd=3, family=2, type=1, proto=0, laddr=('127.0.0.1', 8001), raddr=('127.0.0.1', 45388)> |
wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f7d15bdd150> |
wsgi.file_wrapper | <class 'gunicorn.http.wsgi.FileWrapper'> |
wsgi.input | <gunicorn.http.body.Body object at 0x7f7cfb47af50> |
wsgi.input_terminated | True |
wsgi.multiprocess | True |
wsgi.multithread | True |
wsgi.run_once | False |
wsgi.url_scheme | 'http' |
wsgi.version | (1, 0) |
lifeblog.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 | '/www/wwwroot/default' |
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_MASKED | False |
CSRF_COOKIE_NAME | 'csrftoken' |
CSRF_COOKIE_PATH | '/' |
CSRF_COOKIE_SAMESITE | 'Lax' |
CSRF_COOKIE_SECURE | False |
CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
CSRF_HEADER_NAME | 'HTTP_X_CSRFTOKEN' |
CSRF_TRUSTED_ORIGINS | ['https://7tec.cn'] |
CSRF_USE_SESSIONS | False |
DATABASES | {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_HEALTH_CHECKS': False, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.sqlite3', 'HOST': '', 'NAME': '/www/wwwroot/default/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 |
DATA_UPLOAD_MAX_NUMBER_FILES | 100 |
DATETIME_FORMAT | 'N j, Y, P' |
DATETIME_INPUT_FORMATS | ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M'] |
DATE_FORMAT | 'N j, Y' |
DATE_INPUT_FORMATS | ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y'] |
DEBUG | True |
DEBUG_PROPAGATE_EXCEPTIONS | False |
DECIMAL_SEPARATOR | '.' |
DEFAULT_AUTO_FIELD | 'django.db.models.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 | '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' |
HAYSTACK_CONNECTIONS | {'default': {'ENGINE': 'post.whoosh_cn_backend.WhooshEngine', 'PATH': '/www/wwwroot/default/whoosh_index'}} |
HAYSTACK_SEARCH_RESULTS_PER_PAGE | 10 |
HAYSTACK_SIGNAL_PROCESSOR | 'haystack.signals.RealtimeSignalProcessor' |
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', 'haystack', 'blogger', 'post', 'broker', 'automation', 'mdeditor'] |
INTERNAL_IPS | [] |
LANGUAGES | [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('ckb', 'Central Kurdish (Sorani)'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('ms', 'Malay'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('tk', 'Turkmen'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] |
LANGUAGES_BIDI | ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ur'] |
LANGUAGE_CODE | 'zh-hans' |
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 | [] |
MDEDITOR_CONFIGS | {'default': {'editor_theme': 'default', 'emoji': True, 'flow_chart': True, 'height': 500, 'image_folder': 'editor', 'language': 'zh', 'lineNumbers': True, 'lineWrapping': True, 'preview_theme': 'default', 'search_replace': True, 'sequence': True, 'tex': True, 'theme': 'default', 'toolbar': ['undo', 'redo', '|', 'bold', 'del', 'italic', 'quote', '|', 'h1', 'h2', 'h3', 'h5', 'h6', '|', 'list-ul', 'list-ol', 'hr', '|', 'link', 'reference-link', 'image', 'code-block', 'table', 'datetime', 'emoji', 'pagebreak', '|', 'help', '||', 'preview', 'watch', 'fullscreen'], 'toolbar_autofixed': True, 'upload_image_formats': ['jpg', 'jpeg', 'gif', 'png', 'bmp', 'webp'], 'watch': True, 'width': '100% '}} |
MEDIA_ROOT | '/www/wwwroot/default/static/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 | '********************' |
PREPEND_WWW | False |
ROOT_URLCONF | 'lifeblog.urls' |
SECRET_KEY | '********************' |
SECRET_KEY_FALLBACKS | '********************' |
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 | False |
SESSION_SERIALIZER | 'django.contrib.sessions.serializers.JSONSerializer' |
SETTINGS_MODULE | 'lifeblog.settings' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
SITE_ID | 1 |
STATICFILES_DIRS | ('/www/wwwroot/default/static/static',) |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | None |
STATIC_URL | '/static/' |
STORAGES | {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'}, 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}} |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/www/wwwroot/default/static/template'], 'OPTIONS': {'builtins': ['django.templatetags.static'], 'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages']}}] |
TEST_NON_SERIALIZED_APPS | [] |
TEST_RUNNER | 'django.test.runner.DiscoverRunner' |
THOUSAND_SEPARATOR | ',' |
TIME_FORMAT | 'P' |
TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
TIME_ZONE | 'Asia/Shanghai' |
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 | 'lifeblog.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.