'staticfiles' is not a registered tag library. Must be one of: account admin_list admin_modify admin_urls cache comments comments_xtd crispy_forms_field crispy_forms_filters crispy_forms_tags crispy_forms_utils crowdnews_adverts crowdnews_articles crowdnews_customcomments crowdnews_profiles crowdnews_sections crowdnews_storylines grp_tags highlighting i18n indent_text l10n log md2 pagination_tags postman_admin_modify postman_tags socialaccount static syntax_color truncate_letters tz widont
Request Method: | GET |
---|---|
Request URL: | https://www.unslanted.net/comments/reply/5736/ |
Django Version: | 3.2.11 |
Exception Type: | TemplateSyntaxError |
Exception Value: | 'staticfiles' is not a registered tag library. Must be one of: account admin_list admin_modify admin_urls cache comments comments_xtd crispy_forms_field crispy_forms_filters crispy_forms_tags crispy_forms_utils crowdnews_adverts crowdnews_articles crowdnews_customcomments crowdnews_profiles crowdnews_sections crowdnews_storylines grp_tags highlighting i18n indent_text l10n log md2 pagination_tags postman_admin_modify postman_tags socialaccount static syntax_color truncate_letters tz widont |
Exception Location: | /usr/local/lib/python3.6/dist-packages/django/template/defaulttags.py, line 1038, in find_library |
Python Executable: | /usr/local/bin/uwsgi |
Python Version: | 3.6.9 |
Python Path: | ['.', '', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages'] |
Server time: | Fri, 29 Mar 2024 07:30:27 -0400 |
In template /home/crowdnews/crowdnews/templates/django_comments_xtd/base.html
, error at line 3
1 | {% extends "base/base.html" %} |
---|---|
2 | |
3 | {% load staticfiles %} |
4 | {% block extrahead %} |
5 | <meta charset="utf-8" /> |
6 | <title>{% block title %}{% endblock %}</title> |
7 | {# <link href="{% static 'django_comments_xtd/css/bootstrap.min.css' %}" rel="stylesheet"> #} |
8 | {% endblock %} |
9 | <h2>{% block header %}{% endblock %}</h2> |
10 | |
11 | <div class="row row row-fluid"> |
12 | <div class="wpb_column columns small-12 medium-12"> |
13 | <div class="vc_column-inner "> |
/usr/local/lib/python3.6/dist-packages/django/template/defaulttags.py
, line 1034, in find_library
nodelist_false = NodeList()
values = [parser.compile_filter(bit) for bit in bits[1:]]
return IfChangedNode(nodelist_true, nodelist_false, *values)
def find_library(parser, name):
try:
return parser.libraries[name]…
except KeyError:
raise TemplateSyntaxError(
"'%s' is not a registered tag library. Must be one of:\n%s" % (
name, "\n".join(sorted(parser.libraries)),
),
)
Variable | Value |
---|---|
name | 'staticfiles' |
parser | <django.template.base.Parser object at 0x7f4a028c9cc0> |
/usr/local/lib/python3.6/dist-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 | TemplateSyntaxError("'staticfiles' is not a registered tag library. Must be one of:\naccount\nadmin_list\nadmin_modify\nadmin_urls\ncache\ncomments\ncomments_xtd\ncrispy_forms_field\ncrispy_forms_filters\ncrispy_forms_tags\ncrispy_forms_utils\ncrowdnews_adverts\ncrowdnews_articles\ncrowdnews_customcomments\ncrowdnews_profiles\ncrowdnews_sections\ncrowdnews_storylines\ngrp_tags\nhighlighting\ni18n\nindent_text\nl10n\nlog\nmd2\npagination_tags\npostman_admin_modify\npostman_tags\nsocialaccount\nstatic\nsyntax_color\ntruncate_letters\ntz\nwidont",) |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f4a3275cbe0>> |
request | <WSGIRequest: GET '/comments/reply/5736/'> |
/usr/local/lib/python3.6/dist-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 reply at 0x7f4a06a246a8> |
callback_args | () |
callback_kwargs | {'cid': '5736'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7f4a32712b00>> |
request | <WSGIRequest: GET '/comments/reply/5736/'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f4a3275cbe0> |
wrapped_callback | <function reply at 0x7f4a06a246a8> |
/usr/local/lib/python3.6/dist-packages/django_comments_xtd/views.py
, line 336, in reply
comment.content_type.app_label,
comment.content_type.model),
"django_comments_xtd/%s/reply.html" % (
comment.content_type.app_label,),
"django_comments_xtd/reply.html"
]
return render(request, template_arg,
{"comment": comment, "form": form, "cid": cid, "next": next})…
def mute(request, key):
try:
tmp_comment = signed.loads(str(key),
extra_key=settings.COMMENTS_XTD_SALT)
Variable | Value |
---|---|
cid | '5736' |
comment | <CustomComment: agrohimgpg: Доброго времени суток господа[url=https://agro-him...> |
ct_str | 'article.article' |
form | <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)> |
next | '/comments/sent/' |
options | {'allow_feedback': True, 'allow_flagging': True, 'show_feedback': True, 'who_can_post': 'all'} |
request | <WSGIRequest: GET '/comments/reply/5736/'> |
template_arg | ['django_comments_xtd/article/article/reply.html', 'django_comments_xtd/article/reply.html', 'django_comments_xtd/reply.html'] |
/usr/local/lib/python3.6/dist-packages/django/shortcuts.py
, line 19, in render
def render(request, template_name, context=None, content_type=None, status=None, using=None):
"""
Return a HttpResponse whose content is filled with the result of calling
django.template.loader.render_to_string() with the passed arguments.
"""
content = loader.render_to_string(template_name, context, request, using=using)…
return HttpResponse(content, content_type, status)
def redirect(to, *args, permanent=False, **kwargs):
"""
Return an HttpResponseRedirect to the appropriate URL for the arguments
Variable | Value |
---|---|
content_type | None |
context | {'cid': '5736', 'comment': <CustomComment: agrohimgpg: Доброго времени суток господа[url=https://agro-him...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'next': '/comments/sent/'} |
request | <WSGIRequest: GET '/comments/reply/5736/'> |
status | None |
template_name | ['django_comments_xtd/article/article/reply.html', 'django_comments_xtd/article/reply.html', 'django_comments_xtd/reply.html'] |
using | None |
/usr/local/lib/python3.6/dist-packages/django/template/loader.py
, line 62, in render_to_string
template_name may be a string or a list of strings.
"""
if isinstance(template_name, (list, tuple)):
template = select_template(template_name, using=using)
else:
template = get_template(template_name, using=using)
return template.render(context, request)…
def _engine_list(using=None):
return engines.all() if using is None else [engines[using]]
Variable | Value |
---|---|
context | {'cid': '5736', 'comment': <CustomComment: agrohimgpg: Доброго времени суток господа[url=https://agro-him...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'next': '/comments/sent/'} |
request | <WSGIRequest: GET '/comments/reply/5736/'> |
template | <django.template.backends.django.Template object at 0x7f4a01e9f780> |
template_name | ['django_comments_xtd/article/article/reply.html', 'django_comments_xtd/article/reply.html', 'django_comments_xtd/reply.html'] |
using | None |
/usr/local/lib/python3.6/dist-packages/django/template/backends/django.py
, line 61, in render
@property
def origin(self):
return self.template.origin
def render(self, context=None, request=None):
context = make_context(context, request, autoescape=self.backend.engine.autoescape)
try:
return self.template.render(context)…
except TemplateDoesNotExist as exc:
reraise(exc, self.backend)
def copy_exception(exc, backend=None):
"""
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'comment': <CustomComment: agrohimgpg: Доброго времени суток господа[url=https://agro-him...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '5736', 'next': '/comments/sent/'}] |
request | <WSGIRequest: GET '/comments/reply/5736/'> |
self | <django.template.backends.django.Template object at 0x7f4a01e9f780> |
/usr/local/lib/python3.6/dist-packages/django/template/base.py
, line 170, in render
def render(self, context):
"Display stage -- can be called many times"
with context.render_context.push_state(self):
if context.template is None:
with context.bind_template(self):
context.template_name = self.name
return self._render(context)…
else:
return self._render(context)
def compile_nodelist(self):
"""
Parse and compile the template source into a nodelist. If debug
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'comment': <CustomComment: agrohimgpg: Доброго времени суток господа[url=https://agro-him...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '5736', 'next': '/comments/sent/'}] |
self | <django.template.base.Template object at 0x7f4a02136cf8> |
/usr/local/lib/python3.6/dist-packages/django/template/base.py
, line 162, in _render
self.nodelist = self.compile_nodelist()
def __iter__(self):
for node in self.nodelist:
yield from node
def _render(self, context):
return self.nodelist.render(context)…
def render(self, context):
"Display stage -- can be called many times"
with context.render_context.push_state(self):
if context.template is None:
with context.bind_template(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'comment': <CustomComment: agrohimgpg: Доброго времени суток господа[url=https://agro-him...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '5736', 'next': '/comments/sent/'}] |
self | <django.template.base.Template object at 0x7f4a02136cf8> |
/usr/local/lib/python3.6/dist-packages/django/template/base.py
, line 938, in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = node.render_annotated(context)…
else:
bit = node
bits.append(str(bit))
return mark_safe(''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
bits | [] |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'comment': <CustomComment: agrohimgpg: Доброго времени суток господа[url=https://agro-him...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '5736', 'next': '/comments/sent/'}] |
node | <ExtendsNode: extends "django_comments_xtd/base.html"> |
self | [<ExtendsNode: extends "django_comments_xtd/base.html">] |
/usr/local/lib/python3.6/dist-packages/django/template/base.py
, line 905, in render_annotated
"""
Render the node. If debug is True and an exception occurs during
rendering, the exception is annotated with contextual line information
where it occurred in the template. For internal usage this method is
preferred over using the render method directly.
"""
try:
return self.render(context)…
except Exception as e:
if context.template.engine.debug and not hasattr(e, 'template_debug'):
e.template_debug = context.render_context.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'comment': <CustomComment: agrohimgpg: Доброго времени суток господа[url=https://agro-him...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '5736', 'next': '/comments/sent/'}] |
self | <ExtendsNode: extends "django_comments_xtd/base.html"> |
/usr/local/lib/python3.6/dist-packages/django/template/loader_tags.py
, line 127, in render
return parent
if isinstance(getattr(parent, 'template', None), Template):
# parent is a django.template.backends.django.Template
return parent.template
return self.find_template(parent, context)
def render(self, context):
compiled_parent = self.get_parent(context)…
if BLOCK_CONTEXT_KEY not in context.render_context:
context.render_context[BLOCK_CONTEXT_KEY] = BlockContext()
block_context = context.render_context[BLOCK_CONTEXT_KEY]
# Add the block nodes from this node to the block context
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'comment': <CustomComment: agrohimgpg: Доброго времени суток господа[url=https://agro-him...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '5736', 'next': '/comments/sent/'}] |
self | <ExtendsNode: extends "django_comments_xtd/base.html"> |
/usr/local/lib/python3.6/dist-packages/django/template/loader_tags.py
, line 124, in get_parent
raise TemplateSyntaxError(error_msg)
if isinstance(parent, Template):
# parent is a django.template.Template
return parent
if isinstance(getattr(parent, 'template', None), Template):
# parent is a django.template.backends.django.Template
return parent.template
return self.find_template(parent, context)…
def render(self, context):
compiled_parent = self.get_parent(context)
if BLOCK_CONTEXT_KEY not in context.render_context:
context.render_context[BLOCK_CONTEXT_KEY] = BlockContext()
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'comment': <CustomComment: agrohimgpg: Доброго времени суток господа[url=https://agro-him...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '5736', 'next': '/comments/sent/'}] |
parent | 'django_comments_xtd/base.html' |
self | <ExtendsNode: extends "django_comments_xtd/base.html"> |
/usr/local/lib/python3.6/dist-packages/django/template/loader_tags.py
, line 104, in find_template
passed as the skip argument. This enables extends to work recursively
without extending the same template twice.
"""
history = context.render_context.setdefault(
self.context_key, [self.origin],
)
template, origin = context.template.engine.find_template(
template_name, skip=history,…
)
history.append(origin)
return template
def get_parent(self, context):
parent = self.parent_name.resolve(context)
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'comment': <CustomComment: agrohimgpg: Доброго времени суток господа[url=https://agro-him...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '5736', 'next': '/comments/sent/'}] |
history | [<django.template.base.Origin object at 0x7f4a04bb7fd0>] |
self | <ExtendsNode: extends "django_comments_xtd/base.html"> |
template_name | 'django_comments_xtd/base.html' |
/usr/local/lib/python3.6/dist-packages/django/template/engine.py
, line 125, in find_template
raise ImproperlyConfigured(
"Invalid value in template loaders configuration: %r" % loader)
def find_template(self, name, dirs=None, skip=None):
tried = []
for loader in self.template_loaders:
try:
template = loader.get_template(name, skip=skip)…
return template, template.origin
except TemplateDoesNotExist as e:
tried.extend(e.tried)
raise TemplateDoesNotExist(name, tried=tried)
def from_string(self, template_code):
Variable | Value |
---|---|
dirs | None |
loader | <django.template.loaders.filesystem.Loader object at 0x7f4a04d97278> |
name | 'django_comments_xtd/base.html' |
self | <django.template.engine.Engine object at 0x7f4a04e18828> |
skip | [<django.template.base.Origin object at 0x7f4a04bb7fd0>] |
tried | [] |
/usr/local/lib/python3.6/dist-packages/django/template/loaders/base.py
, line 30, in get_template
try:
contents = self.get_contents(origin)
except TemplateDoesNotExist:
tried.append((origin, 'Source does not exist'))
continue
else:
return Template(
contents, origin, origin.template_name, self.engine,…
)
raise TemplateDoesNotExist(template_name, tried=tried)
def get_template_sources(self, template_name):
"""
Variable | Value |
---|---|
contents | ('{% extends "base/base.html" %}\n' '\n' '{% load staticfiles %}\n' '{% block extrahead %}\n' ' <meta charset="utf-8" />\n' ' <title>{% block title %}{% endblock %}</title>\n' ' {# <link href="{% static \'django_comments_xtd/css/bootstrap.min.css\' ' '%}" rel="stylesheet"> #}\n' '{% endblock %}\n' '\t <h2>{% block header %}{% endblock %}</h2>\n' '\n' '<div class="row row row-fluid">\n' '\t<div class="wpb_column columns small-12 medium-12">\n' '\t\t<div class="vc_column-inner ">\n' '\t\t\t<div class="wpb_wrapper">\n' ' {% block content %}\n' ' {% endblock %}\n' ' </div>\n' '</div>\n' '</div>\n' '</div>\n' '</body></html>\n') |
origin | <django.template.base.Origin object at 0x7f4a02136550> |
self | <django.template.loaders.filesystem.Loader object at 0x7f4a04d97278> |
skip | [<django.template.base.Origin object at 0x7f4a04bb7fd0>] |
template_name | 'django_comments_xtd/base.html' |
tried | [] |
/usr/local/lib/python3.6/dist-packages/django/template/base.py
, line 155, in __init__
engine = Engine.get_default()
if origin is None:
origin = Origin(UNKNOWN_SOURCE)
self.name = name
self.origin = origin
self.engine = engine
self.source = str(template_string) # May be lazy.
self.nodelist = self.compile_nodelist()…
def __iter__(self):
for node in self.nodelist:
yield from node
def _render(self, context):
Variable | Value |
---|---|
engine | <django.template.engine.Engine object at 0x7f4a04e18828> |
name | 'django_comments_xtd/base.html' |
origin | <django.template.base.Origin object at 0x7f4a02136550> |
self | <django.template.base.Template object at 0x7f4a02136978> |
template_string | ('{% extends "base/base.html" %}\n' '\n' '{% load staticfiles %}\n' '{% block extrahead %}\n' ' <meta charset="utf-8" />\n' ' <title>{% block title %}{% endblock %}</title>\n' ' {# <link href="{% static \'django_comments_xtd/css/bootstrap.min.css\' ' '%}" rel="stylesheet"> #}\n' '{% endblock %}\n' '\t <h2>{% block header %}{% endblock %}</h2>\n' '\n' '<div class="row row row-fluid">\n' '\t<div class="wpb_column columns small-12 medium-12">\n' '\t\t<div class="vc_column-inner ">\n' '\t\t\t<div class="wpb_wrapper">\n' ' {% block content %}\n' ' {% endblock %}\n' ' </div>\n' '</div>\n' '</div>\n' '</div>\n' '</body></html>\n') |
/usr/local/lib/python3.6/dist-packages/django/template/base.py
, line 193, in compile_nodelist
tokens = lexer.tokenize()
parser = Parser(
tokens, self.engine.template_libraries, self.engine.template_builtins,
self.origin,
)
try:
return parser.parse()…
except Exception as e:
if self.engine.debug:
e.template_debug = self.get_exception_info(e, e.token)
raise
def get_exception_info(self, exception, token):
Variable | Value |
---|---|
lexer | <django.template.base.DebugLexer object at 0x7f4a02136dd8> |
parser | <django.template.base.Parser object at 0x7f4a028c9cc0> |
self | <django.template.base.Template object at 0x7f4a02136978> |
tokens | [<django.template.base.Token object at 0x7f4a02136d30>, <django.template.base.Token object at 0x7f49f95de630>, <django.template.base.Token object at 0x7f49f95de0f0>, <django.template.base.Token object at 0x7f49f95ded68>, <django.template.base.Token object at 0x7f4a028c9710>, <django.template.base.Token object at 0x7f4a028c9550>, <django.template.base.Token object at 0x7f4a028c96a0>, <django.template.base.Token object at 0x7f4a028c92b0>, <django.template.base.Token object at 0x7f4a028c9a58>, <django.template.base.Token object at 0x7f4a028c96d8>, <django.template.base.Token object at 0x7f4a028c9e80>, <django.template.base.Token object at 0x7f4a028c9c88>, <django.template.base.Token object at 0x7f4a028c93c8>, <django.template.base.Token object at 0x7f4a028c9ef0>, <django.template.base.Token object at 0x7f4a028c97f0>, <django.template.base.Token object at 0x7f4a028c98d0>, <django.template.base.Token object at 0x7f4a028c9080>, <django.template.base.Token object at 0x7f4a028c99b0>, <django.template.base.Token object at 0x7f4a028c9668>, <django.template.base.Token object at 0x7f4a021361d0>] |
/usr/local/lib/python3.6/dist-packages/django/template/base.py
, line 478, in parse
except KeyError:
self.invalid_block_tag(token, command, parse_until)
# Compile the callback into a node object and add it to
# the node list.
try:
compiled_result = compile_func(self, token)
except Exception as e:
raise self.error(token, e)…
self.extend_nodelist(nodelist, compiled_result, token)
# Compile success. Remove the token from the command stack.
self.command_stack.pop()
if parse_until:
self.unclosed_block_tag(parse_until)
return nodelist
Variable | Value |
---|---|
command | 'extends' |
compile_func | <function do_extends at 0x7f4a3580ce18> |
nodelist | [] |
parse_until | [] |
self | <django.template.base.Parser object at 0x7f4a028c9cc0> |
token | <django.template.base.Token object at 0x7f4a02136d30> |
/usr/local/lib/python3.6/dist-packages/django/template/base.py
, line 476, in parse
try:
compile_func = self.tags[command]
except KeyError:
self.invalid_block_tag(token, command, parse_until)
# Compile the callback into a node object and add it to
# the node list.
try:
compiled_result = compile_func(self, token)…
except Exception as e:
raise self.error(token, e)
self.extend_nodelist(nodelist, compiled_result, token)
# Compile success. Remove the token from the command stack.
self.command_stack.pop()
if parse_until:
Variable | Value |
---|---|
command | 'extends' |
compile_func | <function do_extends at 0x7f4a3580ce18> |
nodelist | [] |
parse_until | [] |
self | <django.template.base.Parser object at 0x7f4a028c9cc0> |
token | <django.template.base.Token object at 0x7f4a02136d30> |
/usr/local/lib/python3.6/dist-packages/django/template/loader_tags.py
, line 278, in do_extends
the parent template itself (if it evaluates to a Template object).
"""
bits = token.split_contents()
if len(bits) != 2:
raise TemplateSyntaxError("'%s' takes one argument" % bits[0])
bits[1] = construct_relative_path(parser.origin.template_name, bits[1])
parent_name = parser.compile_filter(bits[1])
nodelist = parser.parse()…
if nodelist.get_nodes_by_type(ExtendsNode):
raise TemplateSyntaxError("'%s' cannot appear more than once in the same template" % bits[0])
return ExtendsNode(nodelist, parent_name)
@register.tag('include')
Variable | Value |
---|---|
bits | ['extends', '"base/base.html"'] |
parent_name | <django.template.base.FilterExpression object at 0x7f4a028c9e48> |
parser | <django.template.base.Parser object at 0x7f4a028c9cc0> |
token | <django.template.base.Token object at 0x7f4a02136d30> |
/usr/local/lib/python3.6/dist-packages/django/template/base.py
, line 478, in parse
except KeyError:
self.invalid_block_tag(token, command, parse_until)
# Compile the callback into a node object and add it to
# the node list.
try:
compiled_result = compile_func(self, token)
except Exception as e:
raise self.error(token, e)…
self.extend_nodelist(nodelist, compiled_result, token)
# Compile success. Remove the token from the command stack.
self.command_stack.pop()
if parse_until:
self.unclosed_block_tag(parse_until)
return nodelist
Variable | Value |
---|---|
command | 'load' |
compile_func | <function load at 0x7f4a35800c80> |
nodelist | [<TextNode: '\n\n'>] |
parse_until | [] |
self | <django.template.base.Parser object at 0x7f4a028c9cc0> |
token | <django.template.base.Token object at 0x7f49f95de0f0> |
/usr/local/lib/python3.6/dist-packages/django/template/base.py
, line 476, in parse
try:
compile_func = self.tags[command]
except KeyError:
self.invalid_block_tag(token, command, parse_until)
# Compile the callback into a node object and add it to
# the node list.
try:
compiled_result = compile_func(self, token)…
except Exception as e:
raise self.error(token, e)
self.extend_nodelist(nodelist, compiled_result, token)
# Compile success. Remove the token from the command stack.
self.command_stack.pop()
if parse_until:
Variable | Value |
---|---|
command | 'load' |
compile_func | <function load at 0x7f4a35800c80> |
nodelist | [<TextNode: '\n\n'>] |
parse_until | [] |
self | <django.template.base.Parser object at 0x7f4a028c9cc0> |
token | <django.template.base.Token object at 0x7f49f95de0f0> |
/usr/local/lib/python3.6/dist-packages/django/template/defaulttags.py
, line 1091, in load
name = bits[-1]
lib = find_library(parser, name)
subset = load_from_library(lib, name, bits[1:-2])
parser.add_library(subset)
else:
# one or more libraries are specified; load and add them to the parser
for name in bits[1:]:
lib = find_library(parser, name)…
parser.add_library(lib)
return LoadNode()
@register.tag
def lorem(parser, token):
Variable | Value |
---|---|
bits | ['load', 'staticfiles'] |
name | 'staticfiles' |
parser | <django.template.base.Parser object at 0x7f4a028c9cc0> |
token | <django.template.base.Token object at 0x7f49f95de0f0> |
/usr/local/lib/python3.6/dist-packages/django/template/defaulttags.py
, line 1038, in find_library
def find_library(parser, name):
try:
return parser.libraries[name]
except KeyError:
raise TemplateSyntaxError(
"'%s' is not a registered tag library. Must be one of:\n%s" % (
name, "\n".join(sorted(parser.libraries)),…
),
)
def load_from_library(library, label, names):
"""
Variable | Value |
---|---|
name | 'staticfiles' |
parser | <django.template.base.Parser object at 0x7f4a028c9cc0> |
AnonymousUser
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
CONTENT_LENGTH | '' |
CONTENT_TYPE | '' |
DOCUMENT_ROOT | '/var/www/html' |
HTTPS | 'on' |
HTTP_ACCEPT | '*/*' |
HTTP_HOST | 'www.unslanted.net' |
HTTP_USER_AGENT | 'claudebot' |
PATH_INFO | '/comments/reply/5736/' |
QUERY_STRING | '' |
REMOTE_ADDR | '54.87.90.21' |
REMOTE_PORT | '35732' |
REQUEST_METHOD | 'GET' |
REQUEST_SCHEME | 'https' |
REQUEST_URI | '/comments/reply/5736/' |
SCRIPT_NAME | '' |
SERVER_NAME | 'unslanted.net' |
SERVER_PORT | '443' |
SERVER_PROTOCOL | 'HTTP/1.1' |
uwsgi.core | 2 |
uwsgi.node | b'unslanted.net' |
uwsgi.version | b'2.0.17' |
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 0x7f49f8630450> |
wsgi.multiprocess | False |
wsgi.multithread | True |
wsgi.run_once | False |
wsgi.url_scheme | 'https' |
wsgi.version | (1, 0) |
crowdnews.settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ACCOUNT_EMAIL_REQUIRED | True |
ACCOUNT_EMAIL_VERIFICATION | 'none' |
ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION | False |
ACCOUNT_UNIQUE_EMAIL | False |
ADMINS | [] |
ALLOWED_HOSTS | ['*'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ('allauth.account.auth_backends.AuthenticationBackend', 'django.contrib.auth.backends.ModelBackend') |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
BASE_DIR | '/home/crowdnews/crowdnews' |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
COMMENTS_APP | 'django_comments_xtd' |
COMMENTS_XTD_APP_MODEL_OPTIONS | {'article.article': {'allow_feedback': True, 'allow_flagging': True, 'show_feedback': True}, 'sections.section': {'allow_feedback': True, 'allow_flagging': True, 'show_feedback': True}, 'storylines.storyline': {'allow_feedback': True, 'allow_flagging': True, 'show_feedback': True}} |
COMMENTS_XTD_CONFIRM_EMAIL | False |
COMMENTS_XTD_CONTACT_EMAIL | 'johnny@walesdata.com' |
COMMENTS_XTD_FORM_CLASS | 'customcomments.forms.CustomCommentForm' |
COMMENTS_XTD_FROM_EMAIL | 'johnny@walesdata.com' |
COMMENTS_XTD_LIST_ORDER | ('-thread_id', 'order') |
COMMENTS_XTD_MAX_THREAD_LEVEL | 32 |
COMMENTS_XTD_MODEL | 'customcomments.models.CustomComment' |
COMMENTS_XTD_SALT | 'supercalifragilisticexpialadocious' |
CRISPY_TEMPLATE_PACK | 'bootstrap4' |
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.postgresql', 'HOST': '127.0.0.1', 'NAME': 'crowdnews', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '5432', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'cnewsuser'}} |
DATABASE_ROUTERS | [] |
DATA_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 |
DATETIME_FORMAT | 'N j, Y, P' |
DATETIME_INPUT_FORMATS | ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M'] |
DATE_FORMAT | 'N j, Y' |
DATE_INPUT_FORMATS | ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y'] |
DEBUG | True |
DEBUG_PROPAGATE_EXCEPTIONS | False |
DECIMAL_SEPARATOR | '.' |
DEFAULT_AUTO_FIELD | 'django.db.models.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 | 'Helpdesk <johnny@walesdata.com>' |
DEFAULT_HASHING_ALGORITHM | 'sha256' |
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' |
GOOGLE_RECAPTCHA_SECRET_KEY | '********************' |
IGNORABLE_404_URLS | [] |
INSTALLED_APPS | ['article.apps.ArticleConfig', 'sections.apps.SectionsConfig', 'sources.apps.SourcesConfig', 'profiles.apps.ProfilesConfig', 'storylines.apps.StorylinesConfig', 'webproxy.apps.WebproxyConfig', 'polls.apps.PollsConfig', 'advertisements.apps.AdvertisementsConfig', 'blog.apps.BlogConfig', 'newsbot.apps.NewsbotConfig', 'faqs.apps.FaqsConfig', 'electionator.apps.ElectionatorConfig', 'grappelli', 'crispy_forms', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sites', 'django_extensions', 'django_markdown2', 'django_comments_xtd', 'django_comments', 'customcomments', 'dj_pagination', 'postman', 'allauth', 'allauth.account', 'allauth.socialaccount', 'allauth.socialaccount.providers.facebook', 'allauth.socialaccount.providers.twitter'] |
INTERNAL_IPS | [] |
LANGUAGES | [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('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 | 'en-us' |
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 | '/' |
LOGIN_URL | '/accounts/login/' |
LOGOUT_REDIRECT_URL | None |
MANAGERS | [] |
MEDIA_ROOT | '/home/crowdnews/crowdnews/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 | '********************' |
PASSWORD_RESET_TIMEOUT_DAYS | '********************' |
POSTMAN_AUTO_MODERATE_AS | None |
POSTMAN_DISABLE_USER_EMAILING | True |
POSTMAN_DISALLOW_ANONYMOUS | True |
POSTMAN_MAILER_APP | None |
PREPEND_WWW | False |
PROJECT_DIR | '/home/crowdnews/crowdnews/crowdnews' |
ROOT_URLCONF | 'crowdnews.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.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 | 'crowdnews.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 | 5 |
SOCIALACCOUNT_PROVIDERS | {'facebook': {'AUTH_PARAMS': {'auth_type': 'reauthenticate'}, 'EXCHANGE_TOKEN': '********************', 'FIELDS': ['id', 'email', 'name', 'first_name', 'last_name', 'verified', 'updated_time'], 'LOCALE_FUNC': <function <lambda> at 0x7f4a35808d08>, 'METHOD': 'oauth2', 'SCOPE': ['email', 'public_profile', 'user_friends'], 'VERIFIED_EMAIL': False, 'VERSION': 'v2.4'}} |
SOCIAL_AUTH_FACEBOOK_KEY | '********************' |
SOCIAL_AUTH_FACEBOOK_SECRET | '********************' |
STATICFILES_DIRS | ('/home/crowdnews/crowdnews/crowdnews/templates/static/',) |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | '/home/crowdnews/crowdnews/crowdnews/static' |
STATIC_URL | '/static/' |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/home/crowdnews/crowdnews/templates'], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'django.template.context_processors.request']}}] |
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 | 'America/New_York' |
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 | 'crowdnews.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.