'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/12989/ |
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 12:03:14 -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 0x7f4a04839fd0> |
/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/12989/'> |
/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': '12989'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7f4a32712b00>> |
request | <WSGIRequest: GET '/comments/reply/12989/'> |
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 | '12989' |
comment | <CustomComment: Dicielic: [u][url=https://gosafe.click/pl/tJvMcI]Online kasi...> |
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/12989/'> |
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': '12989', 'comment': <CustomComment: Dicielic: [u][url=https://gosafe.click/pl/tJvMcI]Online kasi...>, '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/12989/'> |
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': '12989', 'comment': <CustomComment: Dicielic: [u][url=https://gosafe.click/pl/tJvMcI]Online kasi...>, '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/12989/'> |
template | <django.template.backends.django.Template object at 0x7f4a01f263c8> |
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/tJvMcI]Online kasi...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '12989', 'next': '/comments/sent/'}] |
request | <WSGIRequest: GET '/comments/reply/12989/'> |
self | <django.template.backends.django.Template object at 0x7f4a01f263c8> |
/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/tJvMcI]Online kasi...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '12989', 'next': '/comments/sent/'}] |
self | <django.template.base.Template object at 0x7f4a0482e4e0> |
/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/tJvMcI]Online kasi...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '12989', 'next': '/comments/sent/'}] |
self | <django.template.base.Template object at 0x7f4a0482e4e0> |
/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/tJvMcI]Online kasi...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '12989', '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/tJvMcI]Online kasi...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '12989', '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/tJvMcI]Online kasi...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '12989', '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/tJvMcI]Online kasi...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '12989', '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/tJvMcI]Online kasi...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '12989', 'next': '/comments/sent/'}] |
history | [<django.template.base.Origin object at 0x7f4a0482e710>] |
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 0x7f4a0482e710>] |
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 0x7f4a01e6e1d0> |
self | <django.template.loaders.filesystem.Loader object at 0x7f4a04d97278> |
skip | [<django.template.base.Origin object at 0x7f4a0482e710>] |
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 0x7f4a01e6e1d0> |
self | <django.template.base.Template object at 0x7f4a00e83e48> |
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 0x7f4a00e830b8> |
parser | <django.template.base.Parser object at 0x7f4a04839fd0> |
self | <django.template.base.Template object at 0x7f4a00e83e48> |
tokens | [<django.template.base.Token object at 0x7f4a01e6ea58>, <django.template.base.Token object at 0x7f4a0482e8d0>, <django.template.base.Token object at 0x7f49f59678d0>, <django.template.base.Token object at 0x7f49f6ded898>, <django.template.base.Token object at 0x7f4a01e9f588>, <django.template.base.Token object at 0x7f4a01e9fb70>, <django.template.base.Token object at 0x7f4a01e9fc50>, <django.template.base.Token object at 0x7f4a01e9ff60>, <django.template.base.Token object at 0x7f4a01e9f630>, <django.template.base.Token object at 0x7f4a01e9f400>, <django.template.base.Token object at 0x7f4a048392b0>, <django.template.base.Token object at 0x7f4a04839ba8>, <django.template.base.Token object at 0x7f4a04839780>, <django.template.base.Token object at 0x7f4a04839898>, <django.template.base.Token object at 0x7f4a04839390>, <django.template.base.Token object at 0x7f4a04839e10>, <django.template.base.Token object at 0x7f4a04839278>, <django.template.base.Token object at 0x7f4a04839400>, <django.template.base.Token object at 0x7f4a04839eb8>, <django.template.base.Token object at 0x7f4a01e6e978>] |
/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 0x7f4a04839fd0> |
token | <django.template.base.Token object at 0x7f4a01e6ea58> |
/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 0x7f4a04839fd0> |
token | <django.template.base.Token object at 0x7f4a01e6ea58> |
/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 0x7f4a04839160> |
parser | <django.template.base.Parser object at 0x7f4a04839fd0> |
token | <django.template.base.Token object at 0x7f4a01e6ea58> |
/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 0x7f4a04839fd0> |
token | <django.template.base.Token object at 0x7f49f59678d0> |
/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 0x7f4a04839fd0> |
token | <django.template.base.Token object at 0x7f49f59678d0> |
/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 0x7f4a04839fd0> |
token | <django.template.base.Token object at 0x7f49f59678d0> |
/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 0x7f4a04839fd0> |
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/12989/' |
QUERY_STRING | '' |
REMOTE_ADDR | '54.172.95.106' |
REMOTE_PORT | '59108' |
REQUEST_METHOD | 'GET' |
REQUEST_SCHEME | 'https' |
REQUEST_URI | '/comments/reply/12989/' |
SCRIPT_NAME | '' |
SERVER_NAME | 'unslanted.net' |
SERVER_PORT | '443' |
SERVER_PROTOCOL | 'HTTP/1.1' |
uwsgi.core | 0 |
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 0x7f4a0385e318> |
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.