'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/13510/ |
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: | Thu, 28 Mar 2024 13:21:38 -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 0x7f4a04b9ba90> |
/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/13510/'> |
/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': '13510'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7f4a32712b00>> |
request | <WSGIRequest: GET '/comments/reply/13510/'> |
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 | '13510' |
comment | <CustomComment: Dicielic: [u][url=https://gosafe.click/pl/NvmSUy]Játssz onli...> |
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/13510/'> |
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': '13510', 'comment': <CustomComment: Dicielic: [u][url=https://gosafe.click/pl/NvmSUy]Játssz onli...>, '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/13510/'> |
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': '13510', 'comment': <CustomComment: Dicielic: [u][url=https://gosafe.click/pl/NvmSUy]Játssz onli...>, '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/13510/'> |
template | <django.template.backends.django.Template object at 0x7f4a0463f3c8> |
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/NvmSUy]Játssz onli...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '13510', 'next': '/comments/sent/'}] |
request | <WSGIRequest: GET '/comments/reply/13510/'> |
self | <django.template.backends.django.Template object at 0x7f4a0463f3c8> |
/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/NvmSUy]Játssz onli...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '13510', 'next': '/comments/sent/'}] |
self | <django.template.base.Template object at 0x7f49fa620d30> |
/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/NvmSUy]Játssz onli...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '13510', 'next': '/comments/sent/'}] |
self | <django.template.base.Template object at 0x7f49fa620d30> |
/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/NvmSUy]Játssz onli...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '13510', '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/NvmSUy]Játssz onli...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '13510', '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/NvmSUy]Játssz onli...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '13510', '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/NvmSUy]Játssz onli...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '13510', '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/NvmSUy]Játssz onli...>, 'form': <CustomCommentForm bound=False, valid=Unknown, fields=(content_type;object_pk;timestamp;security_hash;name;email;url;comment;honeypot;followup;reply_to)>, 'cid': '13510', 'next': '/comments/sent/'}] |
history | [<django.template.base.Origin object at 0x7f49fa620b70>] |
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 0x7f49fa620b70>] |
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 0x7f4a049921d0> |
self | <django.template.loaders.filesystem.Loader object at 0x7f4a04d97278> |
skip | [<django.template.base.Origin object at 0x7f49fa620b70>] |
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 0x7f4a049921d0> |
self | <django.template.base.Template object at 0x7f49fa620da0> |
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 0x7f4a01462c18> |
parser | <django.template.base.Parser object at 0x7f4a04b9ba90> |
self | <django.template.base.Template object at 0x7f49fa620da0> |
tokens | [<django.template.base.Token object at 0x7f4a013cd438>, <django.template.base.Token object at 0x7f4a013cd7f0>, <django.template.base.Token object at 0x7f4a013cd898>, <django.template.base.Token object at 0x7f4a013cd780>, <django.template.base.Token object at 0x7f49fa439518>, <django.template.base.Token object at 0x7f49fa439f98>, <django.template.base.Token object at 0x7f49fa439d68>, <django.template.base.Token object at 0x7f49fa439358>, <django.template.base.Token object at 0x7f49fa439eb8>, <django.template.base.Token object at 0x7f49fa439940>, <django.template.base.Token object at 0x7f49fa439e10>, <django.template.base.Token object at 0x7f49fa4391d0>, <django.template.base.Token object at 0x7f49fa439b70>, <django.template.base.Token object at 0x7f49fa439c18>, <django.template.base.Token object at 0x7f49fa4395c0>, <django.template.base.Token object at 0x7f49fa439860>, <django.template.base.Token object at 0x7f49fa439550>, <django.template.base.Token object at 0x7f4a04b9beb8>, <django.template.base.Token object at 0x7f4a04b9b2e8>, <django.template.base.Token object at 0x7f4a013cd240>] |
/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 0x7f4a04b9ba90> |
token | <django.template.base.Token object at 0x7f4a013cd438> |
/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 0x7f4a04b9ba90> |
token | <django.template.base.Token object at 0x7f4a013cd438> |
/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 0x7f4a04b9b828> |
parser | <django.template.base.Parser object at 0x7f4a04b9ba90> |
token | <django.template.base.Token object at 0x7f4a013cd438> |
/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 0x7f4a04b9ba90> |
token | <django.template.base.Token object at 0x7f4a013cd898> |
/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 0x7f4a04b9ba90> |
token | <django.template.base.Token object at 0x7f4a013cd898> |
/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 0x7f4a04b9ba90> |
token | <django.template.base.Token object at 0x7f4a013cd898> |
/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 0x7f4a04b9ba90> |
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/13510/' |
QUERY_STRING | '' |
REMOTE_ADDR | '3.91.19.28' |
REMOTE_PORT | '33868' |
REQUEST_METHOD | 'GET' |
REQUEST_SCHEME | 'https' |
REQUEST_URI | '/comments/reply/13510/' |
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 0x7f4a0385e390> |
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.