'NoneType' object is not subscriptable
Request Method: | GET |
---|---|
Request URL: | https://halifaxacademy.com.mx/assignments/diagnostico/ |
Django Version: | 3.0.4 |
Exception Type: | TypeError |
Exception Value: | 'NoneType' object is not subscriptable |
Exception Location: | /home/conrad/hacademy/home/templatetags/hacademy_tags.py in toc, line 55 |
Python Executable: | /home/conrad/venvs/hacademy/bin/python3 |
Python Version: | 3.6.9 |
Python Path: | ['/home/conrad/hacademy', '/home/conrad/venvs/hacademy/bin', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/home/conrad/venvs/hacademy/lib/python3.6/site-packages'] |
Server time: | Vie, 29 Mar 2024 12:45:41 +0000 |
In template /home/conrad/hacademy/hacademy/templates/base.html
, error at line 0
1 | {% load static wagtailuserbar %} |
---|---|
2 | |
3 | <!DOCTYPE html> |
4 | <html class="no-js" lang="en"> |
5 | <head> |
6 | |
7 | <meta charset="utf-8" /> |
8 | <title> |
9 | {% block title %} |
10 | {% endblock %} |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/core/handlers/exception.py
in inner
This decorator is automatically applied to all middleware to ensure that
no middleware leaks an exception and that the next middleware in the stack
can rely on getting a response instead of an exception.
"""
@wraps(get_response)
def inner(request):
try:
response = get_response(request)…
except Exception as exc:
response = response_for_exception(request, exc)
return response
return inner
Variable | Value |
---|---|
exc | TypeError("'NoneType' object is not subscriptable",) |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f8faa3c9c18>> |
request | <WSGIRequest: GET '/assignments/diagnostico/'> |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/core/handlers/base.py
in _get_response
"HttpResponse object. It returned None instead."
% (middleware_method.__self__.__class__.__name__)
)
try:
response = response.render()
except Exception as e:
response = self.process_exception_by_middleware(e, request)…
return response
def process_exception_by_middleware(self, exception, request):
"""
Pass the exception to the exception middleware. If no middleware
Variable | Value |
---|---|
callback | <function serve at 0x7f8f9de22ae8> |
callback_args | ('assignments/diagnostico/',) |
callback_kwargs | {} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7f8f9eafa4a8>> |
request | <WSGIRequest: GET '/assignments/diagnostico/'> |
resolver | <URLResolver 'hacademy.urls' (None:None) '^/'> |
resolver_match | ResolverMatch(func=wagtail.core.views.serve, args=('assignments/diagnostico/',), kwargs={}, url_name=wagtail_serve, app_names=[], namespaces=[], route=^((?:[\w\-]+/)*)$) |
response | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f8faa3c9c18> |
wrapped_callback | <function serve at 0x7f8f9de22ae8> |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/core/handlers/base.py
in _get_response
raise ValueError(
"%s.process_template_response didn't return an "
"HttpResponse object. It returned None instead."
% (middleware_method.__self__.__class__.__name__)
)
try:
response = response.render()…
except Exception as e:
response = self.process_exception_by_middleware(e, request)
return response
def process_exception_by_middleware(self, exception, request):
Variable | Value |
---|---|
callback | <function serve at 0x7f8f9de22ae8> |
callback_args | ('assignments/diagnostico/',) |
callback_kwargs | {} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7f8f9eafa4a8>> |
request | <WSGIRequest: GET '/assignments/diagnostico/'> |
resolver | <URLResolver 'hacademy.urls' (None:None) '^/'> |
resolver_match | ResolverMatch(func=wagtail.core.views.serve, args=('assignments/diagnostico/',), kwargs={}, url_name=wagtail_serve, app_names=[], namespaces=[], route=^((?:[\w\-]+/)*)$) |
response | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f8faa3c9c18> |
wrapped_callback | <function serve at 0x7f8f9de22ae8> |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/template/response.py
in render
If the content has already been rendered, this is a no-op.
Return the baked response instance.
"""
retval = self
if not self._is_rendered:
self.content = self.rendered_content…
for post_callback in self._post_render_callbacks:
newretval = post_callback(retval)
if newretval is not None:
retval = newretval
return retval
Variable | Value |
---|---|
retval | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
self | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/template/response.py
in rendered_content
This *does not* set the final content of the response. To set the
response content, you must either call render(), or set the
content explicitly using the value of this property.
"""
template = self.resolve_template(self.template_name)
context = self.resolve_context(self.context_data)
return template.render(context, self._request)…
def add_post_render_callback(self, callback):
"""Add a new post-rendering callback.
If the response has already been rendered,
invoke the callback immediately.
Variable | Value |
---|---|
context | {'anon': True, 'page': <AssignmentPage: 000 Clase Muestra>, 'request': <WSGIRequest: GET '/assignments/diagnostico/'>, 'self': <AssignmentPage: 000 Clase Muestra>, 'student_assignment': <StudentAssignment: anon - 000 Clase Muestra EMPTY>} |
self | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
template | <django.template.backends.django.Template object at 0x7f8f9daba9b0> |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/template/backends/django.py
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}, {}, {}, {'page': <AssignmentPage: 000 Clase Muestra>, 'self': <AssignmentPage: 000 Clase Muestra>, 'request': <WSGIRequest: GET '/assignments/diagnostico/'>, 'anon': True, 'student_assignment': <StudentAssignment: anon - 000 Clase Muestra EMPTY>}] |
request | <WSGIRequest: GET '/assignments/diagnostico/'> |
self | <django.template.backends.django.Template object at 0x7f8f9daba9b0> |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/template/base.py
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}, {}, {}, {'page': <AssignmentPage: 000 Clase Muestra>, 'self': <AssignmentPage: 000 Clase Muestra>, 'request': <WSGIRequest: GET '/assignments/diagnostico/'>, 'anon': True, 'student_assignment': <StudentAssignment: anon - 000 Clase Muestra EMPTY>}] |
self | <django.template.base.Template object at 0x7f8f9dbcd860> |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/test/utils.py
in instrumented_test_render
def instrumented_test_render(self, context):
"""
An instrumented Template render method, providing a signal that can be
intercepted by the test Client.
"""
template_rendered.send(sender=self, template=self, context=context)
return self.nodelist.render(context)…
class _TestState:
pass
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'page': <AssignmentPage: 000 Clase Muestra>, 'self': <AssignmentPage: 000 Clase Muestra>, 'request': <WSGIRequest: GET '/assignments/diagnostico/'>, 'anon': True, 'student_assignment': <StudentAssignment: anon - 000 Clase Muestra EMPTY>}] |
self | <django.template.base.Template object at 0x7f8f9dbcd860> |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/template/base.py
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}, {}, {}, {'page': <AssignmentPage: 000 Clase Muestra>, 'self': <AssignmentPage: 000 Clase Muestra>, 'request': <WSGIRequest: GET '/assignments/diagnostico/'>, 'anon': True, 'student_assignment': <StudentAssignment: anon - 000 Clase Muestra EMPTY>}] |
node | <ExtendsNode: extends "base.html"> |
self | [<ExtendsNode: extends "base.html">] |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/template/base.py
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}, {}, {}, {'page': <AssignmentPage: 000 Clase Muestra>, 'self': <AssignmentPage: 000 Clase Muestra>, 'request': <WSGIRequest: GET '/assignments/diagnostico/'>, 'anon': True, 'student_assignment': <StudentAssignment: anon - 000 Clase Muestra EMPTY>}] |
self | <ExtendsNode: extends "base.html"> |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/template/loader_tags.py
in render
compiled_parent.nodelist.get_nodes_by_type(BlockNode)}
block_context.add_blocks(blocks)
break
# Call Template._render explicitly so the parser context stays
# the same.
with context.render_context.push_state(compiled_parent, isolated_context=False):
return compiled_parent._render(context)…
class IncludeNode(Node):
context_key = '__include_context'
def __init__(self, template, *args, extra_context=None, isolated_context=False, **kwargs):
Variable | Value |
---|---|
block_context | <django.template.loader_tags.BlockContext object at 0x7f8f9da030f0> |
blocks | {'body_class': <Block Node: body_class. Contents: []>, 'content': <Block Node: content. Contents: []>, 'extra_css': <Block Node: extra_css. Contents: [<TextNode: '\n '>, <TextNode: '\n '>]>, 'extra_footer': <Block Node: extra_footer. Contents: [<TextNode: '\n '>]>, 'extra_js': <Block Node: extra_js. Contents: [<TextNode: '\n '>, <TextNode: '\n '>]>, 'extra_messages': <Block Node: extra_messages. Contents: [<TextNode: '\n '>]>, 'footer': <Block Node: footer. Contents: [<TextNode: '\n <div cla'>, <Block Node: extra_footer. Contents: [<TextNode: '\n '>]>, <TextNode: '\n '>]>, 'modals': <Block Node: modals. Contents: [<TextNode: ' \n '>]>, 'open_graph': <Block Node: open_graph. Contents: [<TextNode: '\n <!-- sucking'>]>, 'title': <Block Node: title. Contents: [<TextNode: '\n '>]>} |
compiled_parent | <django.template.base.Template object at 0x7f8f9d828c50> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'page': <AssignmentPage: 000 Clase Muestra>, 'self': <AssignmentPage: 000 Clase Muestra>, 'request': <WSGIRequest: GET '/assignments/diagnostico/'>, 'anon': True, 'student_assignment': <StudentAssignment: anon - 000 Clase Muestra EMPTY>}] |
node | <django.template.defaulttags.LoadNode object at 0x7f8f9d990cc0> |
self | <ExtendsNode: extends "base.html"> |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/test/utils.py
in instrumented_test_render
def instrumented_test_render(self, context):
"""
An instrumented Template render method, providing a signal that can be
intercepted by the test Client.
"""
template_rendered.send(sender=self, template=self, context=context)
return self.nodelist.render(context)…
class _TestState:
pass
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'page': <AssignmentPage: 000 Clase Muestra>, 'self': <AssignmentPage: 000 Clase Muestra>, 'request': <WSGIRequest: GET '/assignments/diagnostico/'>, 'anon': True, 'student_assignment': <StudentAssignment: anon - 000 Clase Muestra EMPTY>}] |
self | <django.template.base.Template object at 0x7f8f9d828c50> |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/template/base.py
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 |
---|---|
bit | ' \n </div>\n </div>\n\n\n ' |
bits | ['', '\n' '\n' '<!DOCTYPE html>\n' '<html class="no-js" lang="en">\n' ' <head>\n' '\n' ' <meta charset="utf-8" />\n' ' <title>\n' ' ', '\n\t000 Clase Muestra\n', '\n' ' Halifax Academy\n' ' </title>\n' ' <meta name="description" content="" />\n' ' <meta name="viewport" content="width=device-width, initial-scale=1, ' 'maximum-scale=1" />\n' '\n' ' ', '\n' ' <!-- sucking up to the lords of the internet -->\n' ' <meta property="og:title" content="Halifax Academy: Real Life ' 'English" />\n' ' <meta property="og:description" content="Learn to speak English ' 'the natural way" />\n' ' <meta property="og:image" ' 'content="https://halifaxacademy.com.mx/static/img/og-main.jpg" />\n' ' <meta property="og:url" content="https://halifaxacademy.com.mx" ' '/>\n' ' ', '\n\n ', '\n <link rel="apple-touch-icon" href="', '/static/img/favicon-96.png', '" />\n <link rel="stylesheet" href="', '/static/css/open-sans.css', '" >\n <link rel="stylesheet" type="text/css" href="', '/static/css/icofont.min.css', '">\n <link rel="stylesheet" type="text/css" href="', '/static/css/hacademy.css', '">\n <link rel="shortcut icon" type="image/png" href="', '/static/img/favicon-16.png', '"/>\n <meta name="google" value="notranslate"> \n\n ', '\n' '\n' '\t<link href="/static/css/assignment_page.css" rel="stylesheet"/>\n' '\t<link href="/static/css/splide_full.css" rel="stylesheet" />\n' '\t<!-- <link href="/static/css/bootstrap-grid.min.css" rel="stylesheet" /> ' '-->\n' '\n', '\n' '\n' ' <!-- Matomo -->\n' ' <script type="text/javascript">\n' ' var _paq = window._paq || [];\n' ' /* tracker methods like "setCustomDimension" should be called ' 'before "trackPageView" */\n' ' _paq.push(["setDocumentTitle", document.domain + "/" + ' 'document.title]);\n' " _paq.push(['trackPageView']);\n" " _paq.push(['enableLinkTracking']);\n" ' (function() {\n' ' var u="//matomo.conradfox.com/";\n' " _paq.push(['setTrackerUrl', u+'matomo.php']);\n" " _paq.push(['setSiteId', '9']);\n" " var d=document, g=d.createElement('script'), " "s=d.getElementsByTagName('script')[0];\n" " g.type='text/javascript'; g.async=true; g.defer=true; " "g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);\n" ' })();\n' ' </script>\n' ' <!-- End Matomo Code -->\n' '\n' ' </head>\n' '\n' ' <body class="', 'template-assignmentpage', '" >\n' '\n' '\n' ' <nav class="flexy">\n' ' <a href="/">\n' ' <img id="ha-logo" src="', '/static/img/hacademy_logo1.png', '" />\n' ' </a>\n' ' <ul class="menu">\n' ' <li><a href="/#cursos">Cursos</a></li>\n' ' <li>·</li>\n' ' <li><a href="/centro-de-aprendizaje/">Centro de ' 'Aprendizaje</a></li>\n' ' <li>·</li>\n' ' <li><a href="/#about">Quienes somos</a></li>\n' ' <li>·</li>\n' ' <li><a href="/#contact">Contacto</a></li>\n' ' </ul>\n' '\n' ' <div class="relative">\n' '\n' ' <!-- THis is the dropdown menu for small screens -->\n' ' <div class="menu-dropdown">\n' ' <i class="icofont-navigation-menu ' 'js-menu-dropdown-toggle"></i>\n' ' <i class="icofont-ui-close js-menu-dropdown-toggle" ' 'style="font-size:.8em;color: salmon"></i>\n' ' <ul class="menu-dropdown-items ' 'js-menu-dropdown-toggle">\n' ' <a><li class="menu-dropdown-item">Cursos</li></a>\n' ' <!-- <a><li class="menu-dropdown-item">Examen ' 'diagnostico</li></a> -->\n' ' <a href="/centro-de-aprendizaje/"><li ' 'class="… <trimmed 5239 bytes string> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'page': <AssignmentPage: 000 Clase Muestra>, 'self': <AssignmentPage: 000 Clase Muestra>, 'request': <WSGIRequest: GET '/assignments/diagnostico/'>, 'anon': True, 'student_assignment': <StudentAssignment: anon - 000 Clase Muestra EMPTY>}] |
node | <Block Node: content. Contents: []> |
self | [<django.template.defaulttags.LoadNode object at 0x7f8f9d990cc0>, <TextNode: '\n\n<!DOCTYPE html>\n<html c'>, <Block Node: title. Contents: [<TextNode: '\n '>]>, <TextNode: '\n Halifax Acad'>, <Block Node: open_graph. Contents: [<TextNode: '\n <!-- sucking'>]>, <TextNode: '\n\n '>, <TextNode: '\n <link rel="apple'>, <django.templatetags.static.StaticNode object at 0x7f8f9d9906a0>, <TextNode: '" />\n <link rel="s'>, <django.templatetags.static.StaticNode object at 0x7f8f9d990240>, <TextNode: '" >\n <link rel="st'>, <django.templatetags.static.StaticNode object at 0x7f8f9d990c50>, <TextNode: '">\n <link rel="sty'>, <django.templatetags.static.StaticNode object at 0x7f8f9d990ba8>, <TextNode: '">\n <link rel="sho'>, <django.templatetags.static.StaticNode object at 0x7f8f9d990978>, <TextNode: '"/>\n <meta name="g'>, <Block Node: extra_css. Contents: [<TextNode: '\n '>, <TextNode: '\n '>]>, <TextNode: '\n\n <!-- Matomo -->'>, <Block Node: body_class. Contents: []>, <TextNode: '" >\n\n\n <nav class='>, <django.templatetags.static.StaticNode object at 0x7f8f9d9908d0>, <TextNode: '" />\n </a>\n '>, <IfNode>, <TextNode: '\n\n </u'>, <IfNode>, <TextNode: '\n </div>\n '>, <ForNode: for message in page.messages, tail_len: 3>, <TextNode: '\n\n '>, <Block Node: extra_messages. Contents: [<TextNode: '\n '>]>, <TextNode: ' \n </d'>, <Block Node: content. Contents: []>, <TextNode: '\n\n <footer id="con'>, <Block Node: footer. Contents: [<TextNode: '\n <div cla'>, <Block Node: extra_footer. Contents: [<TextNode: '\n '>]>, <TextNode: '\n '>]>, <TextNode: '\n </footer>\n\n '>, <TextNode: '\n <script src="'>, <django.templatetags.static.StaticNode object at 0x7f8f9d987978>, <TextNode: '"></script>\n <scri'>, <django.templatetags.static.StaticNode object at 0x7f8f9d987a90>, <TextNode: '"></script>\n\n '>, <Block Node: extra_js. Contents: [<TextNode: '\n '>, <TextNode: '\n '>]>, <TextNode: '\n\n '>, <Block Node: modals. Contents: [<TextNode: ' \n '>]>, <TextNode: '\n\n\n\n\n </body>\n</html>\n'>] |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/template/base.py
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}, {}, {}, {'page': <AssignmentPage: 000 Clase Muestra>, 'self': <AssignmentPage: 000 Clase Muestra>, 'request': <WSGIRequest: GET '/assignments/diagnostico/'>, 'anon': True, 'student_assignment': <StudentAssignment: anon - 000 Clase Muestra EMPTY>}] |
self | <Block Node: content. Contents: []> |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/template/loader_tags.py
in render
push = block = block_context.pop(self.name)
if block is None:
block = self
# Create new block so we can store context without thread-safety issues.
block = type(self)(block.name, block.nodelist)
block.context = context
context['block'] = block
result = block.nodelist.render(context)…
if push is not None:
block_context.push(self.name, push)
return result
def super(self):
if not hasattr(self, 'context'):
Variable | Value |
---|---|
block | <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <wagtail.images.templatetags.wagtailimages_tags.ImageNode object at 0x7f8f9d714208>, <TextNode: '\n'>, <wagtail.images.templatetags.wagtailimages_tags.ImageNode object at 0x7f8f9d714390>, <TextNode: '\n'>, <wagtail.images.templatetags.wagtailimages_tags.ImageNode object at 0x7f8f9d714588>, <TextNode: ' \t\n\t\n\n\t\t\t<div id="feature'>, <Variable Node: fimg1.url>, <TextNode: '">\n\t\t\t\t \t<source media="('>, <Variable Node: fimg2.url>, <TextNode: '">\t\n\t\t\t\t \t<source media="'>, <Variable Node: fimg3.url>, <TextNode: '">\n\t\t\t\t \t<img class="feat'>, <Variable Node: fimg1.url>, <TextNode: '" alt="'>, <Variable Node: fimg.alt>, <TextNode: '">\n\t\t\t\t</picture> \n\t\t\t\t<d'>, <Variable Node: page.code>, <TextNode: '\n\t\t\t\t\t</span>\n\t\t\t\t\t<h2 cl'>, <IfNode>, <TextNode: '">\n\t\t\t\t\t\t<span>'>, <Variable Node: page.title>, <TextNode: '</span>\n\t\t\t\t\t</h2>\n\t\t\t\t</'>, <Variable Node: student_assignment.id>, <TextNode: '" />\n\n\t\t<div class="left-'>, <django.template.library.SimpleNode object at 0x7f8f9dabc5f8>, <TextNode: '\n\t\t\t</div>\n\t\t</div>\n\n\t\t<d'>, <IfNode>, <TextNode: ' -->\n\n\n\t\t\t<h3 class="page'>, <Variable Node: page.intro|striptags>, <TextNode: '</h3>\n\n\t\t\t'>, <IfNode>, <TextNode: '\n\n\t\t</div>\n\n\t\t<div class='>, <IfNode>, <TextNode: '\n -->\n\n'>]> |
block_context | <django.template.loader_tags.BlockContext object at 0x7f8f9da030f0> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'page': <AssignmentPage: 000 Clase Muestra>, 'self': <AssignmentPage: 000 Clase Muestra>, 'request': <WSGIRequest: GET '/assignments/diagnostico/'>, 'anon': True, 'student_assignment': <StudentAssignment: anon - 000 Clase Muestra EMPTY>}] |
push | <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <wagtail.images.templatetags.wagtailimages_tags.ImageNode object at 0x7f8f9d714208>, <TextNode: '\n'>, <wagtail.images.templatetags.wagtailimages_tags.ImageNode object at 0x7f8f9d714390>, <TextNode: '\n'>, <wagtail.images.templatetags.wagtailimages_tags.ImageNode object at 0x7f8f9d714588>, <TextNode: ' \t\n\t\n\n\t\t\t<div id="feature'>, <Variable Node: fimg1.url>, <TextNode: '">\n\t\t\t\t \t<source media="('>, <Variable Node: fimg2.url>, <TextNode: '">\t\n\t\t\t\t \t<source media="'>, <Variable Node: fimg3.url>, <TextNode: '">\n\t\t\t\t \t<img class="feat'>, <Variable Node: fimg1.url>, <TextNode: '" alt="'>, <Variable Node: fimg.alt>, <TextNode: '">\n\t\t\t\t</picture> \n\t\t\t\t<d'>, <Variable Node: page.code>, <TextNode: '\n\t\t\t\t\t</span>\n\t\t\t\t\t<h2 cl'>, <IfNode>, <TextNode: '">\n\t\t\t\t\t\t<span>'>, <Variable Node: page.title>, <TextNode: '</span>\n\t\t\t\t\t</h2>\n\t\t\t\t</'>, <Variable Node: student_assignment.id>, <TextNode: '" />\n\n\t\t<div class="left-'>, <django.template.library.SimpleNode object at 0x7f8f9dabc5f8>, <TextNode: '\n\t\t\t</div>\n\t\t</div>\n\n\t\t<d'>, <IfNode>, <TextNode: ' -->\n\n\n\t\t\t<h3 class="page'>, <Variable Node: page.intro|striptags>, <TextNode: '</h3>\n\n\t\t\t'>, <IfNode>, <TextNode: '\n\n\t\t</div>\n\n\t\t<div class='>, <IfNode>, <TextNode: '\n -->\n\n'>]> |
self | <Block Node: content. Contents: []> |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/template/base.py
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 |
---|---|
bit | ('" />\n' '\n' '\t\t<div class="left-col">\n' '\t\t\t<div class="table-of-contents">\n' '\t\t\t\t<h3>Table of Contents</h3>\n' '\t\t\t\t') |
bits | ['\n\n\n', '', '\n', '', '\n', '', ' \t\n' '\t\n' '\n' '\t\t\t<div id="featured-image-container">\n' '\t\t\t\t <picture>\n' '\t\t\t\t \t<source class="featured_image" media="(min-width:1000px)" ' 'srcset="', '/media/images/chalkboard_welcome_pCGcU5V.2e16d0ba.fill-1000x200.png', '">\n\t\t\t\t \t<source media="(min-width:550px)" srcset="', '/media/images/chalkboard_welcome_pCGcU5V.2e16d0ba.fill-700x250.png', '">\t\n\t\t\t\t \t<source media="(min-width:300px)" srcset="', '/media/images/chalkboard_welcome_pCGcU5V.2e16d0ba.fill-500x350.png', '">\n\t\t\t\t \t<img class="featured-image" src="', '/media/images/chalkboard_welcome_pCGcU5V.2e16d0ba.fill-1000x200.png', '" alt="', '', '">\n' '\t\t\t\t</picture> \n' '\t\t\t\t<div class="featured-image-overlay">\n' '\t\t\t\t\t<span class="module-number">\n' '\t\t\t\t\t\t', 'CM - 001', '\n\t\t\t\t\t</span>\n\t\t\t\t\t<h2 class="', '', '">\n\t\t\t\t\t\t<span>', 'Clase Muestra', '</span>\n' '\t\t\t\t\t</h2>\n' '\t\t\t\t</div>\n' '\t\t\t</div>\n' '\t\n' '\n' '\t<div class="container">\n' '\t\t<input type="hidden" id="student_assignment_id" value="', '4513', '" />\n' '\n' '\t\t<div class="left-col">\n' '\t\t\t<div class="table-of-contents">\n' '\t\t\t\t<h3>Table of Contents</h3>\n' '\t\t\t\t'] |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'page': <AssignmentPage: 000 Clase Muestra>, 'self': <AssignmentPage: 000 Clase Muestra>, 'request': <WSGIRequest: GET '/assignments/diagnostico/'>, 'anon': True, 'student_assignment': <StudentAssignment: anon - 000 Clase Muestra EMPTY>}] |
node | <django.template.library.SimpleNode object at 0x7f8f9dabc5f8> |
self | [<TextNode: '\n\n\n'>, <wagtail.images.templatetags.wagtailimages_tags.ImageNode object at 0x7f8f9d714208>, <TextNode: '\n'>, <wagtail.images.templatetags.wagtailimages_tags.ImageNode object at 0x7f8f9d714390>, <TextNode: '\n'>, <wagtail.images.templatetags.wagtailimages_tags.ImageNode object at 0x7f8f9d714588>, <TextNode: ' \t\n\t\n\n\t\t\t<div id="feature'>, <Variable Node: fimg1.url>, <TextNode: '">\n\t\t\t\t \t<source media="('>, <Variable Node: fimg2.url>, <TextNode: '">\t\n\t\t\t\t \t<source media="'>, <Variable Node: fimg3.url>, <TextNode: '">\n\t\t\t\t \t<img class="feat'>, <Variable Node: fimg1.url>, <TextNode: '" alt="'>, <Variable Node: fimg.alt>, <TextNode: '">\n\t\t\t\t</picture> \n\t\t\t\t<d'>, <Variable Node: page.code>, <TextNode: '\n\t\t\t\t\t</span>\n\t\t\t\t\t<h2 cl'>, <IfNode>, <TextNode: '">\n\t\t\t\t\t\t<span>'>, <Variable Node: page.title>, <TextNode: '</span>\n\t\t\t\t\t</h2>\n\t\t\t\t</'>, <Variable Node: student_assignment.id>, <TextNode: '" />\n\n\t\t<div class="left-'>, <django.template.library.SimpleNode object at 0x7f8f9dabc5f8>, <TextNode: '\n\t\t\t</div>\n\t\t</div>\n\n\t\t<d'>, <IfNode>, <TextNode: ' -->\n\n\n\t\t\t<h3 class="page'>, <Variable Node: page.intro|striptags>, <TextNode: '</h3>\n\n\t\t\t'>, <IfNode>, <TextNode: '\n\n\t\t</div>\n\n\t\t<div class='>, <IfNode>, <TextNode: '\n -->\n\n'>] |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/template/base.py
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}, {}, {}, {'page': <AssignmentPage: 000 Clase Muestra>, 'self': <AssignmentPage: 000 Clase Muestra>, 'request': <WSGIRequest: GET '/assignments/diagnostico/'>, 'anon': True, 'student_assignment': <StudentAssignment: anon - 000 Clase Muestra EMPTY>}] |
self | <django.template.library.SimpleNode object at 0x7f8f9dabc5f8> |
/home/conrad/venvs/hacademy/lib/python3.6/site-packages/django/template/library.py
in render
def __init__(self, func, takes_context, args, kwargs, target_var):
super().__init__(func, takes_context, args, kwargs)
self.target_var = target_var
def render(self, context):
resolved_args, resolved_kwargs = self.get_resolved_arguments(context)
output = self.func(*resolved_args, **resolved_kwargs)…
if self.target_var is not None:
context[self.target_var] = output
return ''
if context.autoescape:
output = conditional_escape(output)
return output
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'page': <AssignmentPage: 000 Clase Muestra>, 'self': <AssignmentPage: 000 Clase Muestra>, 'request': <WSGIRequest: GET '/assignments/diagnostico/'>, 'anon': True, 'student_assignment': <StudentAssignment: anon - 000 Clase Muestra EMPTY>}] |
resolved_args | [None] |
resolved_kwargs | {} |
self | <django.template.library.SimpleNode object at 0x7f8f9dabc5f8> |
/home/conrad/hacademy/home/templatetags/hacademy_tags.py
in toc
def toc(item, s=""):
if type(item) == list:
s += "<ul>"
for i in item:
s = toc(i, s)
s += "</ul>"
else:
if type(item["value"])==str:…
s += "<li>" + "<a href='#" + item["id"] + "'>" + item["value"] + "</a></li>"
else:
s += "<li>" + "<a href='#" + item["id"] + "'>" + item["value"]["title"] + "</a>" \
+ VOCAB_TOGGLE + "<ul class='vocab'>" + \
"".join(["<li>" + card + "</li>" for card in item["value"]["cards"]]) \
+ "</ul>"
Variable | Value |
---|---|
item | None |
s | '' |
AnonymousUser
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
HTTP_ACCEPT | '*/*' |
HTTP_CONNECTION | 'close' |
HTTP_HOST | 'halifaxacademy.com.mx' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_X_FORWARDED_FOR | '3.238.228.237' |
HTTP_X_FORWARDED_PROTO | 'https' |
HTTP_X_REAL_IP | '3.238.228.237' |
PATH_INFO | '/assignments/diagnostico/' |
QUERY_STRING | '' |
RAW_URI | '/assignments/diagnostico/' |
REMOTE_ADDR | '' |
REQUEST_METHOD | 'GET' |
SCRIPT_NAME | '' |
SERVER_NAME | 'halifaxacademy.com.mx' |
SERVER_PORT | '443' |
SERVER_PROTOCOL | 'HTTP/1.0' |
SERVER_SOFTWARE | 'gunicorn/20.0.4' |
gunicorn.socket | <socket.socket fd=14, family=AddressFamily.AF_UNIX, type=SocketKind.SOCK_STREAM, proto=0, laddr=/run/gunicorn_hacademy.sock> |
wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f8f9eaa4048> |
wsgi.file_wrapper | '' |
wsgi.input | <gunicorn.http.body.Body object at 0x7f8f9d817710> |
wsgi.input_terminated | True |
wsgi.multiprocess | True |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'https' |
wsgi.version | (1, 0) |
hacademy.settings.production
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ALLOWED_HOSTS | ['155.138.151.70', 'halifaxacademy.eldojodelosrobots.com.mx', 'halifaxacademy.com.mx', 'localhost', 'halifaxacademy.conradfox.com'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
BASE_DIR | '/home/conrad/hacademy' |
BASE_URL | 'http://example.com' |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
CSRF_COOKIE_AGE | 31449600 |
CSRF_COOKIE_DOMAIN | None |
CSRF_COOKIE_HTTPONLY | False |
CSRF_COOKIE_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': 'hacademy_db', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '5432', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'hacademy_db_user'}} |
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', '%Y-%m-%d', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%Y', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M', '%m/%d/%y'] |
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_CHARSET | 'utf-8' |
DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
DEFAULT_FROM_EMAIL | 'webmaster@localhost' |
DEFAULT_INDEX_TABLESPACE | '' |
DEFAULT_TABLESPACE | '' |
DISALLOWED_USER_AGENTS | [] |
EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
EMAIL_HOST | 'localhost' |
EMAIL_HOST_PASSWORD | '********************' |
EMAIL_HOST_USER | '' |
EMAIL_PORT | 25 |
EMAIL_SSL_CERTFILE | None |
EMAIL_SSL_KEYFILE | '********************' |
EMAIL_SUBJECT_PREFIX | '[Django] ' |
EMAIL_TIMEOUT | None |
EMAIL_USE_LOCALTIME | False |
EMAIL_USE_SSL | False |
EMAIL_USE_TLS | False |
FILE_CHARSET | 'utf-8' |
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' |
IGNORABLE_404_URLS | [] |
INSTALLED_APPS | ['home', 'cards', 'blog', 'search', 'django_social_share', 'wagtail.contrib.table_block', 'wagtail.contrib.modeladmin', 'wagtail.contrib.forms', 'wagtail.contrib.redirects', 'wagtail.embeds', 'wagtail.sites', 'wagtail.users', 'wagtail.snippets', 'wagtail.documents', 'wagtail.images', 'wagtail.search', 'wagtail.admin', 'wagtail.core', 'modelcluster', 'taggit', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'debug_toolbar'] |
INTERNAL_IPS | ['127.0.0.1'] |
LANGUAGES | [('af', 'Afrikaans'), ('ar', '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'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('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'), ('th', 'Thai'), ('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', 'fa', 'ur'] |
LANGUAGE_CODE | 'es-MX' |
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 | {'disable_existing_loggers': False, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}}, 'handlers': {'debugfile': {'class': 'logging.FileHandler', 'filename': '/var/log/django/debug.log', 'level': 'DEBUG'}, 'logfile': {'class': 'logging.handlers.WatchedFileHandler', 'filename': '/var/log/django/error.log'}, 'mail_admins': {'class': 'django.utils.log.AdminEmailHandler', 'filters': ['require_debug_false'], 'level': 'ERROR'}}, 'loggers': {'django': {'handlers': ['logfile'], 'level': 'ERROR', 'propagate': False}, 'django.request': {'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': True}, 'hacademy': {'handlers': ['debugfile'], 'level': 'DEBUG'}}, 'version': 1} |
LOGGING_CONFIG | 'logging.config.dictConfig' |
LOGIN_REDIRECT_URL | '/accounts/profile/' |
LOGIN_URL | '/accounts/login/' |
LOGOUT_REDIRECT_URL | '/' |
MANAGERS | [] |
MEDIA_ROOT | '/home/conrad/hacademy/media' |
MEDIA_URL | '/media/' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
MIDDLEWARE | ['debug_toolbar.middleware.DebugToolbarMiddleware', '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', 'django.middleware.security.SecurityMiddleware', 'wagtail.core.middleware.SiteMiddleware', 'wagtail.contrib.redirects.middleware.RedirectMiddleware'] |
MIGRATION_MODULES | {} |
MONTH_DAY_FORMAT | 'F j' |
NUMBER_GROUPING | 0 |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT_DAYS | '********************' |
PREPEND_WWW | False |
PROJECT_DIR | '/home/conrad/hacademy/hacademy' |
ROOT_URLCONF | 'hacademy.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 | None |
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 | 'hacademy.settings.production' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
STATICFILES_DIRS | ['/home/conrad/hacademy/hacademy/static'] |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | '/home/conrad/hacademy/static' |
STATIC_URL | '/static/' |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/home/conrad/hacademy/hacademy/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']}}] |
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 | 'UTC' |
USE_I18N | True |
USE_L10N | True |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | False |
USE_X_FORWARDED_HOST | False |
USE_X_FORWARDED_PORT | False |
WAGTAILADMIN_RICH_TEXT_EDITORS | {'default': {'OPTIONS': {'features': ['h2', 'h3', 'h4', 'bold', 'italic', 'underline', 'highlight', 'ul', 'link', 'document-link']}, 'WIDGET': 'wagtail.admin.rich_text.DraftailRichTextArea'}, 'legacy': {'WIDGET': 'wagtail.admin.rich_text.HalloRichTextArea'}} |
WAGTAILDOCS_SERVE_METHOD | 'direct' |
WAGTAIL_FRONTEND_LOGIN_URL | '/login/' |
WAGTAIL_SITE_NAME | 'hacademy' |
WSGI_APPLICATION | 'hacademy.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.