'str' object has no attribute 'strftime'
Request Method: | GET |
---|---|
Request URL: | http://www.missiology.org/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie |
Django Version: | 2.0 |
Exception Type: | AttributeError |
Exception Value: | 'str' object has no attribute 'strftime' |
Exception Location: | /apps/HalcyonCMS/home/templatetags/extras.py in datetimeparse, line 11 |
Python Executable: | /usr/bin/python3 |
Python Version: | 3.5.2 |
Python Path: | ['/apps/HalcyonCMS', '/usr/local/bin', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/home/missio/.local/lib/python3.5/site-packages', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages'] |
Server time: | Thu, 28 Mar 2024 12:39:48 +0000 |
In template /apps/HalcyonCMS/templates/missiology/base.html
, error at line 0
1 | {% load extras %} |
---|---|
2 | <!doctype html> |
3 | <html lang="en"> |
4 | <head> |
5 | <meta charset="utf-8"> |
6 | <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> |
7 | <meta name="description" content=""> |
8 | <meta name="author" content=""> |
9 | <link rel="icon" href="/static/missiology/favicon.ico"> |
10 |
/usr/local/lib/python3.5/dist-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 | AttributeError("'str' object has no attribute 'strftime'",) |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7ff33fe74a20>> |
request | <WSGIRequest: GET '/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie'> |
/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py
in _get_response
break
if response is None:
wrapped_callback = self.make_view_atomic(callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs)
except Exception as e:
response = self.process_exception_by_middleware(e, request)...
# Complain if the view returned None (a common error).
if response is None:
if isinstance(callback, types.FunctionType): # FBV
view_name = callback.__name__
else: # CBV
Variable | Value |
---|---|
callback | <function view_podcast at 0x7ff33c882950> |
callback_args | () |
callback_kwargs | {'nice_url': 'S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7ff33c9cbf28>> |
request | <WSGIRequest: GET '/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie'> |
resolver | <URLResolver 'HalcyonCMS.urls' (None:None) '^/'> |
resolver_match | ResolverMatch(func=post.views.view_podcast, args=(), kwargs={'nice_url': 'S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie'}, url_name=None, app_names=[], namespaces=[]) |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7ff33fe74a20> |
wrapped_callback | <function view_podcast at 0x7ff33c882950> |
/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py
in _get_response
response = middleware_method(request, callback, callback_args, callback_kwargs)
if response:
break
if response is None:
wrapped_callback = self.make_view_atomic(callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs)...
except Exception as e:
response = self.process_exception_by_middleware(e, request)
# Complain if the view returned None (a common error).
if response is None:
if isinstance(callback, types.FunctionType): # FBV
Variable | Value |
---|---|
callback | <function view_podcast at 0x7ff33c882950> |
callback_args | () |
callback_kwargs | {'nice_url': 'S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7ff33c9cbf28>> |
request | <WSGIRequest: GET '/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie'> |
resolver | <URLResolver 'HalcyonCMS.urls' (None:None) '^/'> |
resolver_match | ResolverMatch(func=post.views.view_podcast, args=(), kwargs={'nice_url': 'S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie'}, url_name=None, app_names=[], namespaces=[]) |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7ff33fe74a20> |
wrapped_callback | <function view_podcast at 0x7ff33c882950> |
/apps/HalcyonCMS/post/views.py
in view_podcast
{
'response': res,
'page_id': 0,
'user': user,
'is_admin': is_admin,
'podcast': podcast,
'full_url': full_url,
'related_podcasts': related_podcasts...
}
)
def podcast(request):
res = SiteResponse(request)
Variable | Value |
---|---|
full_url | 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie' |
is_admin | False |
nice_url | 'S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie' |
num_related | 5 |
podcast | None |
related_podcasts | [] |
request | <WSGIRequest: GET '/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie'> |
res | <home.SiteResponse object at 0x7ff331265a90> |
user | None |
/usr/local/lib/python3.5/dist-packages/django/shortcuts.py
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 | {'full_url': 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie', 'is_admin': False, 'page_id': 0, 'podcast': None, 'related_podcasts': [], 'response': <home.SiteResponse object at 0x7ff331265a90>, 'user': None} |
request | <WSGIRequest: GET '/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie'> |
status | None |
template_name | 'missiology/view_podcast.html' |
using | None |
/usr/local/lib/python3.5/dist-packages/django/template/loader.py
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 | {'full_url': 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie', 'is_admin': False, 'page_id': 0, 'podcast': None, 'related_podcasts': [], 'response': <home.SiteResponse object at 0x7ff331265a90>, 'user': None} |
request | <WSGIRequest: GET '/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie'> |
template | <django.template.backends.django.Template object at 0x7ff3312654e0> |
template_name | 'missiology/view_podcast.html' |
using | None |
/usr/local/lib/python3.5/dist-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 | [{'False': False, 'True': True, 'None': None}, {}, {}, {'user': None, 'full_url': 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie', 'related_podcasts': [], 'is_admin': False, 'response': <home.SiteResponse object at 0x7ff331265a90>, 'podcast': None, 'page_id': 0}] |
request | <WSGIRequest: GET '/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie'> |
self | <django.template.backends.django.Template object at 0x7ff3312654e0> |
/usr/local/lib/python3.5/dist-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 | [{'False': False, 'True': True, 'None': None}, {}, {}, {'user': None, 'full_url': 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie', 'related_podcasts': [], 'is_admin': False, 'response': <home.SiteResponse object at 0x7ff331265a90>, 'podcast': None, 'page_id': 0}] |
self | <django.template.base.Template object at 0x7ff3312654a8> |
/usr/local/lib/python3.5/dist-packages/django/template/base.py
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 | [{'False': False, 'True': True, 'None': None}, {}, {}, {'user': None, 'full_url': 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie', 'related_podcasts': [], 'is_admin': False, 'response': <home.SiteResponse object at 0x7ff331265a90>, 'podcast': None, 'page_id': 0}] |
self | <django.template.base.Template object at 0x7ff3312654a8> |
/usr/local/lib/python3.5/dist-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 | [{'False': False, 'True': True, 'None': None}, {}, {}, {'user': None, 'full_url': 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie', 'related_podcasts': [], 'is_admin': False, 'response': <home.SiteResponse object at 0x7ff331265a90>, 'podcast': None, 'page_id': 0}] |
node | <ExtendsNode: extends 'missiology/base.html'> |
self | [<ExtendsNode: extends 'missiology/base.html'>] |
/usr/local/lib/python3.5/dist-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 | [{'False': False, 'True': True, 'None': None}, {}, {}, {'user': None, 'full_url': 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie', 'related_podcasts': [], 'is_admin': False, 'response': <home.SiteResponse object at 0x7ff331265a90>, 'podcast': None, 'page_id': 0}] |
self | <ExtendsNode: extends 'missiology/base.html'> |
/usr/local/lib/python3.5/dist-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 0x7ff3312675f8> |
blocks | {'css': <Block Node: css. Contents: [<TextNode: '\n '>]>, 'headjs': <Block Node: headjs. Contents: [<TextNode: '\n '>]>, 'headmeta': <Block Node: headmeta. Contents: [<TextNode: '\n '>]>, 'js': <Block Node: js. Contents: [<TextNode: '\n '>]>, 'main': <Block Node: main. Contents: [<TextNode: '\n '>]>, 'modals': <Block Node: modals. Contents: []>} |
compiled_parent | <django.template.base.Template object at 0x7ff33c7bb1d0> |
context | [{'False': False, 'True': True, 'None': None}, {}, {}, {'user': None, 'full_url': 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie', 'related_podcasts': [], 'is_admin': False, 'response': <home.SiteResponse object at 0x7ff331265a90>, 'podcast': None, 'page_id': 0}] |
node | <django.template.defaulttags.LoadNode object at 0x7ff3399f0320> |
self | <ExtendsNode: extends 'missiology/base.html'> |
/usr/local/lib/python3.5/dist-packages/django/template/base.py
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 | [{'False': False, 'True': True, 'None': None}, {}, {}, {'user': None, 'full_url': 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie', 'related_podcasts': [], 'is_admin': False, 'response': <home.SiteResponse object at 0x7ff331265a90>, 'podcast': None, 'page_id': 0}] |
self | <django.template.base.Template object at 0x7ff33c7bb1d0> |
/usr/local/lib/python3.5/dist-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 ' |
bits | ['', '\n' '<!doctype html>\n' '<html lang="en">\n' ' <head>\n' ' <meta charset="utf-8">\n' ' <meta name="viewport" content="width=device-width, initial-scale=1, ' 'shrink-to-fit=no">\n' ' <meta name="description" content="">\n' ' <meta name="author" content="">\n' ' <link rel="icon" href="/static/missiology/favicon.ico">\n' '\n' ' <title>Missiology</title>\n' '\n' ' <!-- Bootstrap core CSS -->\n' ' <link href="/static/missiology/css/bootstrap.min.css" ' 'rel="stylesheet">\n' ' <link href="/static/missiology/css/open-iconic-bootstrap.css" ' 'rel="stylesheet">\n' '\n' ' <!-- Custom styles for this template -->\n' ' <link href="/static/missiology/css/missiology.css" ' 'rel="stylesheet">\n' ' <link href="https://fonts.googleapis.com/css?family=Merriweather" ' 'rel="stylesheet">\n' ' <link ' 'href="https://fonts.googleapis.com/css?family=Merriweather+Sans" ' 'rel="stylesheet">\n' ' <link href="https://fonts.googleapis.com/css?family=Martel" ' 'rel="stylesheet">\n' ' <link ' 'href="https://fonts.googleapis.com/css?family=IM+Fell+Great+Primer" ' 'rel="stylesheet">\n' ' ', '', '\n ', '\n ', '\n' '\n' ' <!-- Google Analytics Stuff -->\n' ' <script async ' 'src="https://www.googletagmanager.com/gtag/js?id=UA-133448175-1"></script>\n' ' <script>\n' ' window.dataLayer = window.dataLayer || [];\n' ' function gtag(){dataLayer.push(arguments);}\n' " gtag('js', new Date());\n" " gtag('config', 'UA-133448175-1');\n" ' </script>\n' '\n' ' ', '\n ', '\n\n ', '\n' ' <meta property="og:url" ' 'content="http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie" ' '/>\n' ' <meta property="og:type" content="website" />\n' ' <meta property="og:title" content="" />\n' ' <meta property="og:description" content="A podcast at missiology.com" ' '/>\n' ' \n', '\n </head>\n\n <body>\n ', '', '\n ', '', '\n' '\n' ' <nav class="navbar navbar-expand-md navbar-dark fixed-top ' 'dark-gray">\n' ' <div class="container">\n' ' <a class="navbar-brand" href="/"><img ' 'src="/static/missiology/img/navbar.png" style="height: 55px;" /></a>\n' ' <button class="navbar-toggler" type="button" ' 'data-toggle="collapse" data-target="#navbarCollapse" ' 'aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle ' 'navigation">\n' ' <span class="navbar-toggler-icon"></span>\n' ' </button>\n' ' <div class="collapse navbar-collapse" id="navbarCollapse">\n' ' <ul class="navbar-nav mr-auto">\n' ' <li class="nav-item">\n' ' <a class="nav-link" href="/about">About</a>\n' ' </li>\n' ' <li class="nav-item">\n' ' <a class="nav-link" href="/blog">Blog</a>\n' ' </li>\n' ' <li class="nav-item">\n' ' <a class="nav-link" href="/gvr-archive">GVR ' 'Archive</a>\n' ' </li>\n' ' <li class="nav-item">\n' ' <a class="nav-link" ' 'href="/podcast">Podcasts</a>\n' ' </li>\n' ' <li class="nav-item">\n' ' <a class="nav-link" ' 'href="/bibliography">Bibliography</a>\n' ' </li>\n' ' <li class="nav-item">\n' ' <a class="nav-link" ' 'href="/resources">Resources</a>\n' ' </li>\n' ' <li class="nav-item dropdown">\n' ' <a class="nav-link dropdown-toggle" href="#" ' 'id="searchdrop" data-togg... <trimmed 6908 bytes string> |
context | [{'False': False, 'True': True, 'None': None}, {}, {}, {'user': None, 'full_url': 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie', 'related_podcasts': [], 'is_admin': False, 'response': <home.SiteResponse object at 0x7ff331265a90>, 'podcast': None, 'page_id': 0}] |
node | <Block Node: main. Contents: [<TextNode: '\n '>]> |
self | [<django.template.defaulttags.LoadNode object at 0x7ff3399f0320>, <TextNode: '\n<!doctype html>\n<html la'>, <IfNode>, <TextNode: '\n '>, <Block Node: css. Contents: [<TextNode: '\n '>]>, <TextNode: '\n\n <!-- Google Ana'>, <Block Node: headjs. Contents: [<TextNode: '\n '>]>, <TextNode: '\n\n '>, <Block Node: headmeta. Contents: [<TextNode: '\n '>]>, <TextNode: '\n </head>\n\n <body>\n'>, <IfNode>, <TextNode: '\n '>, <Block Node: modals. Contents: []>, <TextNode: '\n\n <nav class="nav'>, <IfNode>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n '>, <For Node: for message in response.messages, tail_len: 3>, <TextNode: '\n '>, <For Node: for error in response.errors, tail_len: 3>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n\n '>, <Block Node: main. Contents: [<TextNode: '\n '>]>, <TextNode: '\n\n '>, <IfNode>, <TextNode: '\n </main>\n\n '>, <django.template.defaulttags.NowNode object at 0x7ff33c5070f0>, <TextNode: ' Missio Dei Foundation\n '>, <IfNode>, <TextNode: ';\n var csrf_to'>, <Variable Node: csrf_token>, <TextNode: "';\n var medium">, <IfNode>, <TextNode: '\n\n '>, <Block Node: js. Contents: [<TextNode: '\n '>]>, <TextNode: '\n </body>\n</html>\n'>] |
/usr/local/lib/python3.5/dist-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 | [{'False': False, 'True': True, 'None': None}, {}, {}, {'user': None, 'full_url': 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie', 'related_podcasts': [], 'is_admin': False, 'response': <home.SiteResponse object at 0x7ff331265a90>, 'podcast': None, 'page_id': 0}] |
self | <Block Node: main. Contents: [<TextNode: '\n '>]> |
/usr/local/lib/python3.5/dist-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: main. Contents: [<TextNode: '\n <div style="padding-'>, <Variable Node: podcast.title>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n '>, <Variable Node: podcast.user.get_full_name>, <TextNode: '</a>\n '>, <Variable Node: podcast.pub_date|datetimeparse>, <TextNode: '</a>\n '>, <For Node: for tag in podcast.tags.all, tail_len: 5>, <TextNode: '\n '>, <Variable Node: podcast.url>, <TextNode: '" type="audio/mpeg">\n '>, <Variable Node: podcast.summary|safe>, <TextNode: '\n '>, <Variable Node: full_url>, <TextNode: '"\n '>, <Variable Node: full_url>, <TextNode: '"\n '>, <For Node: for comment in podcast.comments.all, tail_len: 7>, <TextNode: '\n\n <div cl'>, <IfNode>, <TextNode: '\n </di'>, <For Node: for related in related_podcasts, tail_len: 5>, <TextNode: '\n </di'>]> |
block_context | <django.template.loader_tags.BlockContext object at 0x7ff3312675f8> |
context | [{'False': False, 'True': True, 'None': None}, {}, {}, {'user': None, 'full_url': 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie', 'related_podcasts': [], 'is_admin': False, 'response': <home.SiteResponse object at 0x7ff331265a90>, 'podcast': None, 'page_id': 0}] |
push | <Block Node: main. Contents: [<TextNode: '\n <div style="padding-'>, <Variable Node: podcast.title>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n '>, <Variable Node: podcast.user.get_full_name>, <TextNode: '</a>\n '>, <Variable Node: podcast.pub_date|datetimeparse>, <TextNode: '</a>\n '>, <For Node: for tag in podcast.tags.all, tail_len: 5>, <TextNode: '\n '>, <Variable Node: podcast.url>, <TextNode: '" type="audio/mpeg">\n '>, <Variable Node: podcast.summary|safe>, <TextNode: '\n '>, <Variable Node: full_url>, <TextNode: '"\n '>, <Variable Node: full_url>, <TextNode: '"\n '>, <For Node: for comment in podcast.comments.all, tail_len: 7>, <TextNode: '\n\n <div cl'>, <IfNode>, <TextNode: '\n </di'>, <For Node: for related in related_podcasts, tail_len: 5>, <TextNode: '\n </di'>]> |
self | <Block Node: main. Contents: [<TextNode: '\n '>]> |
/usr/local/lib/python3.5/dist-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 | '</a>\n <a class="by-link-small" href="#">' |
bits | ['\n' ' <div style="padding-left: 0; padding-right: 0;" class="container">\n' ' <div class="row no-gutters">\n' ' <div class="col-12 heading whitesmoke-fore dark-red">\n' ' <img src="/static/missiology/img/doodad-light-gray.png" ' 'class="heading-img" style="max-height: 55px;" />\n' ' Podcast\n' ' </div>\n' ' </div>\n' '\n' ' <div class="row no-gutters mt-15">\n' ' <div class="col-sm-8">\n' ' <div class="row">\n' ' <div class="d-flex flex-column col-sm-12 postcard ' 'postcard-solo">\n' ' <div class="row no-gutters">\n' ' <div class="post-type post-type-podcast ' 'col-md-2">\n' ' \n' ' </div>\n' ' <div class="col-sm-12 col-md-10 post-title">\n' ' ', '', '\n ', '', '\n' ' </div>\n' ' </div>\n' ' <div class="row no-gutters">\n' ' <div class="d-flex align-items-center col-sm-12 ' 'byline-author whitesmoke-fore">\n' ' <a class="by-link" href="#">', '', '</a>\n' ' <a class="by-link-small" href="#">'] |
context | [{'False': False, 'True': True, 'None': None}, {}, {}, {'user': None, 'full_url': 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie', 'related_podcasts': [], 'is_admin': False, 'response': <home.SiteResponse object at 0x7ff331265a90>, 'podcast': None, 'page_id': 0}] |
node | <Variable Node: podcast.pub_date|datetimeparse> |
self | [<TextNode: '\n <div style="padding-'>, <Variable Node: podcast.title>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n '>, <Variable Node: podcast.user.get_full_name>, <TextNode: '</a>\n '>, <Variable Node: podcast.pub_date|datetimeparse>, <TextNode: '</a>\n '>, <For Node: for tag in podcast.tags.all, tail_len: 5>, <TextNode: '\n '>, <Variable Node: podcast.url>, <TextNode: '" type="audio/mpeg">\n '>, <Variable Node: podcast.summary|safe>, <TextNode: '\n '>, <Variable Node: full_url>, <TextNode: '"\n '>, <Variable Node: full_url>, <TextNode: '"\n '>, <For Node: for comment in podcast.comments.all, tail_len: 7>, <TextNode: '\n\n <div cl'>, <IfNode>, <TextNode: '\n </di'>, <For Node: for related in related_podcasts, tail_len: 5>, <TextNode: '\n </di'>] |
/usr/local/lib/python3.5/dist-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 | [{'False': False, 'True': True, 'None': None}, {}, {}, {'user': None, 'full_url': 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie', 'related_podcasts': [], 'is_admin': False, 'response': <home.SiteResponse object at 0x7ff331265a90>, 'podcast': None, 'page_id': 0}] |
self | <Variable Node: podcast.pub_date|datetimeparse> |
/usr/local/lib/python3.5/dist-packages/django/template/base.py
in render
self.filter_expression = filter_expression
def __repr__(self):
return "<Variable Node: %s>" % self.filter_expression
def render(self, context):
try:
output = self.filter_expression.resolve(context)...
except UnicodeDecodeError:
# Unicode conversion can fail sometimes for reasons out of our
# control (e.g. exception rendering). In that case, we fail
# quietly.
return ''
return render_value_in_context(output, context)
Variable | Value |
---|---|
context | [{'False': False, 'True': True, 'None': None}, {}, {}, {'user': None, 'full_url': 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie', 'related_podcasts': [], 'is_admin': False, 'response': <home.SiteResponse object at 0x7ff331265a90>, 'podcast': None, 'page_id': 0}] |
self | <Variable Node: podcast.pub_date|datetimeparse> |
/usr/local/lib/python3.5/dist-packages/django/template/base.py
in resolve
else:
arg_vals.append(arg.resolve(context))
if getattr(func, 'expects_localtime', False):
obj = template_localtime(obj, context.use_tz)
if getattr(func, 'needs_autoescape', False):
new_obj = func(obj, autoescape=context.autoescape, *arg_vals)
else:
new_obj = func(obj, *arg_vals)...
if getattr(func, 'is_safe', False) and isinstance(obj, SafeData):
obj = mark_safe(new_obj)
else:
obj = new_obj
return obj
Variable | Value |
---|---|
arg_vals | [] |
args | [] |
context | [{'False': False, 'True': True, 'None': None}, {}, {}, {'user': None, 'full_url': 'http://missiology.com/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie', 'related_podcasts': [], 'is_admin': False, 'response': <home.SiteResponse object at 0x7ff331265a90>, 'podcast': None, 'page_id': 0}] |
func | <function datetimeparse at 0x7ff33c806268> |
ignore_failures | False |
obj | '' |
self | <django.template.base.FilterExpression object at 0x7ff33126af60> |
string_if_invalid | '' |
/apps/HalcyonCMS/home/templatetags/extras.py
in datetimeparse
register = template.Library()
@register.filter(name='datetimeparse')
def datetimeparse(value):
return value.strftime("%m/%d/%Y")...
@register.filter('startswith')
def startswith(text, starts):
if isinstance(text, str):
return text.startswith(starts)
Variable | Value |
---|---|
value | '' |
AnonymousUser
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
HTTP_ACCEPT | '*/*' |
HTTP_CONNECTION | 'close' |
HTTP_HOST | 'www.missiology.org' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_X_FORWARDED_FOR | '3.237.178.126' |
HTTP_X_FORWARDED_PROTO | 'http' |
HTTP_X_REAL_IP | '3.237.178.126' |
PATH_INFO | '/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie' |
QUERY_STRING | '' |
RAW_URI | '/podcast/S2E6-Postgame-with-Martin-Rodriguez-and-Greg-McKinzie' |
REMOTE_ADDR | '' |
REQUEST_METHOD | 'GET' |
SCRIPT_NAME | '' |
SERVER_NAME | 'www.missiology.org' |
SERVER_PORT | '80' |
SERVER_PROTOCOL | 'HTTP/1.0' |
SERVER_SOFTWARE | 'gunicorn/19.9.0' |
gunicorn.socket | <socket.socket fd=9, family=AddressFamily.AF_UNIX, type=SocketKind.SOCK_STREAM, proto=0, laddr=/apps/HalcyonCMS/HalcyonCMS.sock> |
wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7ff33bca2978> |
wsgi.file_wrapper | '' |
wsgi.input | <gunicorn.http.body.Body object at 0x7ff3312657b8> |
wsgi.multiprocess | True |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'http' |
wsgi.version | (1, 0) |
HalcyonCMS.settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ALLOWED_HOSTS | ['missiology.com', 'www.missiology.com', 'www.missiology.org', 'missiology.org', 'missiology.halcyonflies.com'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
BASE_DIR | '/apps/HalcyonCMS' |
BLOG_CATEGORY | 'Theology/Missiology' |
BLOG_COPYRIGHT | 'Copyright © 2019 Missio Dei Foundation' |
BLOG_DESCRIPTION | 'The official blog of Missiology.com' |
BLOG_EDITOR | 'contact@missiology.com' |
BLOG_GENERATOR | 'HalcyonCMS' |
BLOG_HIDDEN_TAGS | ['GVR'] |
BLOG_IMAGE | 'http://missiology.com/static/missiology/img/navbar.png' |
BLOG_LINK | 'http://missiology.com/blog' |
BLOG_TITLE | 'The Missiology Blog' |
BLOG_WEBMASTER | 'contact@missiology.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_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.mysql', 'HOST': 'localhost', 'NAME': 'missiology', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'missio'}} |
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_CONTENT_TYPE | 'text/html' |
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 |
FILEBROWSER_DIRECTORY | '' |
FILEBROWSER_MAX_UPLOAD_SIZE | 209715200 |
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 | None |
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' |
GRAPPELLI_ADMIN_TITLE | 'Missiology.com' |
IGNORABLE_404_URLS | [] |
INSTALLED_APPS | ['home.apps.HomeConfig', 'post.apps.PostConfig', 'bibliography.apps.BibliographyConfig', 'grappelli', 'filebrowser', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles'] |
INTERNAL_IPS | [] |
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'), ('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'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] |
LANGUAGES_BIDI | ['he', 'ar', 'fa', 'ur'] |
LANGUAGE_CODE | 'en-us' |
LANGUAGE_COOKIE_AGE | None |
LANGUAGE_COOKIE_DOMAIN | None |
LANGUAGE_COOKIE_NAME | 'django_language' |
LANGUAGE_COOKIE_PATH | '/' |
LOCALE_PATHS | [] |
LOGGING | {} |
LOGGING_CONFIG | 'logging.config.dictConfig' |
LOGIN_REDIRECT_URL | '/accounts/profile/' |
LOGIN_URL | '/accounts/login/' |
LOGOUT_REDIRECT_URL | None |
MANAGERS | [] |
MEDIA_ROOT | '/var/www/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_DAYS | '********************' |
PODCAST_AUTHOR | 'Missiology.com' |
PODCAST_CATEGORY1 | 'Religion & Spirituality' |
PODCAST_CATEGORY2 | 'Christianity' |
PODCAST_CATEGORY3 | 'Education' |
PODCAST_COPYRIGHT | 'Copyright © 2019 Missio Dei Foundation' |
PODCAST_DESCRIPTION | ('The Missiology Podcast features conversations with missiologists about their ' 'experiences in the study of mission. We want to know their stories: why the ' "study of mission has mattered in their lives and what it's all about. The " 'host, Martin Rodriguez, and producer, Greg McKinzie, hope our listeners ' 'enjoy hearing the unique voices of these authors and teachers.') |
PODCAST_EXPLICIT | 'no' |
PODCAST_IMAGE | 'http://missiology.com/static/missiology/img/podcast-artwork.jpg' |
PODCAST_LANGUAGE | 'en-us' |
PODCAST_LINK | 'http://missiology.com/podcast' |
PODCAST_MEDIA_PREFIX | 'http://missiology.com/media/' |
PODCAST_OWNER_EMAIL | 'contact@missiology.com' |
PODCAST_OWNER_NAME | 'Missiology.com' |
PODCAST_TITLE | 'The Missiology Podcast' |
PREPEND_WWW | False |
PROTOCOL_PREFIX | 'http://' |
ROOT_URLCONF | 'HalcyonCMS.urls' |
SEARCH_CONTEXT_SIZE | 50 |
SEARCH_INCLUDES | ['pages', 'posts'] |
SECRET_KEY | '********************' |
SECURE_BROWSER_XSS_FILTER | False |
SECURE_CONTENT_TYPE_NOSNIFF | False |
SECURE_HSTS_INCLUDE_SUBDOMAINS | False |
SECURE_HSTS_PRELOAD | False |
SECURE_HSTS_SECONDS | 0 |
SECURE_PROXY_SSL_HEADER | None |
SECURE_REDIRECT_EXEMPT | [] |
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_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 | 'HalcyonCMS.settings' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
SITE_PREFIX | 'http://missiology.com' |
STATICFILES_DIRS | ['/apps/HalcyonCMS/static'] |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | '/var/www/static' |
STATIC_URL | '/static/' |
TABLE_CACHE_FILE | 'sources_datatables.json' |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/apps/HalcyonCMS/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' |
THEME_TEMPLATES | {'bib_detail': 'missiology/bib_detail.html', 'bib_export': 'missiology/bib_export.txt', 'bib_index': 'missiology/bib_index.html', 'blog': 'missiology/blog.html', 'blog_feed': 'missiology/blog_feed.xml', 'create_blog': 'missiology/create_blog.html', 'create_podcast': 'missiology/create_podcast.html', 'create_resource': 'missiology/create_resource.html', 'create_user': 'missiology/create_user.html', 'home_index': 'missiology/index.html', 'login': 'missiology/login.html', 'pages': 'missiology/pages.html', 'podcast': 'missiology/podcast.html', 'podcast_feed': 'missiology/podcast_feed.xml', 'resources': 'missiology/resources.html', 'search': 'missiology/search.html', 'section': 'missiology/section.html', 'view_blog': 'missiology/view_blog.html', 'view_podcast': 'missiology/view_podcast.html', 'view_resource': 'missiology/view_resource.html'} |
THOUSAND_SEPARATOR | ',' |
TIME_FORMAT | 'P' |
TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
TIME_ZONE | 'UTC' |
USE_ETAGS | False |
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 | 'HalcyonCMS.wsgi.application' |
X_FRAME_OPTIONS | 'SAMEORIGIN' |
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.