'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://unslanted.net/comments/reply/13069/ |
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:44 -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 0x7f4a01e74828> |
/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/13069/'> |
/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': '13069'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7f4a32712b00>> |
request | <WSGIRequest: GET '/comments/reply/13069/'> |
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 | '13069' |
comment | <CustomComment: Dicielic: [u][url=https://gosafe.click/pl/YRRGcF]Hent bonuse...> |
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/13069/'> |
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': '13069', 'comment': <CustomComment: Dicielic: [u][url=https://gosafe.click/pl/YRRGcF]Hent bonuse...>, '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/13069/'> |
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': '13069', 'comment': <CustomComment: Dicielic: [u][url=https://gosafe.click/pl/YRRGcF]Hent bonuse...>, '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/13069/'> |
template | <django.template.backends.django.Template object at 0x7f49f3d6cef0> |
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: Dicielic: [u][url=https://gosafe.click/pl/YRRGcF]Hent bonuse...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '13069', 'next': '/comments/sent/'}] |
request | <WSGIRequest: GET '/comments/reply/13069/'> |
self | <django.template.backends.django.Template object at 0x7f49f3d6cef0> |
/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: Dicielic: [u][url=https://gosafe.click/pl/YRRGcF]Hent bonuse...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '13069', 'next': '/comments/sent/'}] |
self | <django.template.base.Template object at 0x7f4a045f90f0> |
/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: Dicielic: [u][url=https://gosafe.click/pl/YRRGcF]Hent bonuse...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '13069', 'next': '/comments/sent/'}] |
self | <django.template.base.Template object at 0x7f4a045f90f0> |
/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: Dicielic: [u][url=https://gosafe.click/pl/YRRGcF]Hent bonuse...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '13069', '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: Dicielic: [u][url=https://gosafe.click/pl/YRRGcF]Hent bonuse...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '13069', '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: Dicielic: [u][url=https://gosafe.click/pl/YRRGcF]Hent bonuse...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '13069', '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: Dicielic: [u][url=https://gosafe.click/pl/YRRGcF]Hent bonuse...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '13069', '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: Dicielic: [u][url=https://gosafe.click/pl/YRRGcF]Hent bonuse...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '13069', 'next': '/comments/sent/'}] |
history | [<django.template.base.Origin object at 0x7f4a045f9278>] |
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 0x7f4a045f9278>] |
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 0x7f4a045f9ac8> |
self | <django.template.loaders.filesystem.Loader object at 0x7f4a04d97278> |
skip | [<django.template.base.Origin object at 0x7f4a045f9278>] |
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 0x7f4a045f9ac8> |
self | <django.template.base.Template object at 0x7f4a045f94e0> |
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 0x7f4a045f9f98> |
parser | <django.template.base.Parser object at 0x7f4a01e74828> |
self | <django.template.base.Template object at 0x7f4a045f94e0> |
tokens | [<django.template.base.Token object at 0x7f49fa4bcfd0>, <django.template.base.Token object at 0x7f49fa4bcbe0>, <django.template.base.Token object at 0x7f49fa4bc550>, <django.template.base.Token object at 0x7f49fa4bc8d0>, <django.template.base.Token object at 0x7f4a00f69ef0>, <django.template.base.Token object at 0x7f4a00f69780>, <django.template.base.Token object at 0x7f4a00f69278>, <django.template.base.Token object at 0x7f4a00f69e48>, <django.template.base.Token object at 0x7f4a00f694e0>, <django.template.base.Token object at 0x7f4a00f69dd8>, <django.template.base.Token object at 0x7f4a00f695c0>, <django.template.base.Token object at 0x7f4a00f697f0>, <django.template.base.Token object at 0x7f4a00f69da0>, <django.template.base.Token object at 0x7f4a00f69630>, <django.template.base.Token object at 0x7f4a01e74048>, <django.template.base.Token object at 0x7f4a01e741d0>, <django.template.base.Token object at 0x7f4a01e74e80>, <django.template.base.Token object at 0x7f4a01e74198>, <django.template.base.Token object at 0x7f4a01e74ac8>, <django.template.base.Token object at 0x7f49fa4bc9b0>] |
/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 0x7f4a01e74828> |
token | <django.template.base.Token object at 0x7f49fa4bcfd0> |
/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 0x7f4a01e74828> |
token | <django.template.base.Token object at 0x7f49fa4bcfd0> |
/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 0x7f4a01e742e8> |
parser | <django.template.base.Parser object at 0x7f4a01e74828> |
token | <django.template.base.Token object at 0x7f49fa4bcfd0> |
/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 0x7f4a01e74828> |
token | <django.template.base.Token object at 0x7f49fa4bc550> |
/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 0x7f4a01e74828> |
token | <django.template.base.Token object at 0x7f49fa4bc550> |
/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 0x7f4a01e74828> |
token | <django.template.base.Token object at 0x7f49fa4bc550> |
/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 0x7f4a01e74828> |
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 | 'unslanted.net' |
HTTP_USER_AGENT | 'claudebot' |
PATH_INFO | '/comments/reply/13069/' |
QUERY_STRING | '' |
REMOTE_ADDR | '54.234.45.33' |
REMOTE_PORT | '45220' |
REQUEST_METHOD | 'GET' |
REQUEST_SCHEME | 'https' |
REQUEST_URI | '/comments/reply/13069/' |
SCRIPT_NAME | '' |
SERVER_NAME | 'unslanted.net' |
SERVER_PORT | '443' |
SERVER_PROTOCOL | 'HTTP/1.1' |
uwsgi.core | 1 |
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 0x7f49f8630de0> |
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.