'NoneType' object has no attribute 'strip'
Request Method: | GET |
---|---|
Request URL: | http://armstrongandgettybingo.com/clips/ |
Django Version: | 1.10.4 |
Exception Type: | AttributeError |
Exception Value: | 'NoneType' object has no attribute 'strip' |
Exception Location: | /usr/src/app/podcasts/models.py in youtube_key, line 177 |
Python Executable: | /usr/local/bin/python2 |
Python Version: | 2.7.11 |
Python Path: | ['/usr/src/app', '/usr/local/bin', '/usr/local/lib/python27.zip', '/usr/local/lib/python2.7', '/usr/local/lib/python2.7/plat-linux2', '/usr/local/lib/python2.7/lib-tk', '/usr/local/lib/python2.7/lib-old', '/usr/local/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages'] |
Server time: | Tue, 19 Mar 2024 03:07:29 -0500 |
In template /usr/src/app/podcasts/templates/clips.html
, error at line 28
18 | free to <a href="https://docs.google.com/spreadsheets/d/1Gq8ORD1x6DuzkxzAgEblrMUOLsZ3I4OvdWtkl-Vypj8/edit#gid=0">edit |
---|---|
19 | the source spreadsheet</a>. |
20 | This gallery will automatically pull the updated data every ten minutes. |
21 | </p> |
22 | </div> |
23 | <div class="row clips"> |
24 | {% for clip in clips %} |
25 | <div class="col-sm-6 col-md-6"> |
26 | <div class="thumbnail"> |
27 | <a href="/clips/{{ clip.key }}"> |
28 | {% if clip.thumbnail_url %} |
29 | <img src="{{ clip.thumbnail_url }}" class="img-thumbnail img-responsive clip-thumbnail"> |
30 | {% else %} |
31 | <img src="{% static 'img/microphone-icon.png' %}" |
32 | class="img-thumbnail img-responsive clip-thumbnail"> |
33 | {% endif %} |
34 | </a> |
35 | |
36 | <div class="caption"> |
37 | <h3><a href="/clips/{{ clip.key }}">{{ clip.name }}</a></h3> |
38 | <p class="clip-description"> |
/usr/local/lib/python2.7/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, assigned=available_attrs(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("'NoneType' object has no attribute 'strip'",) |
get_response | <bound method WSGIHandler._legacy_get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f84ef730ed0>> |
request | <WSGIRequest: GET '/clips/'> |
/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py
in _legacy_get_response
# Apply request middleware
for middleware_method in self._request_middleware:
response = middleware_method(request)
if response:
break
if response is None:
response = self._get_response(request)...
return response
Variable | Value |
---|---|
middleware_method | <bound method MessageMiddleware.process_request of <django.contrib.messages.middleware.MessageMiddleware object at 0x7f84f19fff90>> |
request | <WSGIRequest: GET '/clips/'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f84ef730ed0> |
/usr/local/lib/python2.7/site-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 clips at 0x7f84ea1997d0> |
callback_args | () |
callback_kwargs | {} |
e | AttributeError("'NoneType' object has no attribute 'strip'",) |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7f84f19fff50>> |
request | <WSGIRequest: GET '/clips/'> |
resolver | <RegexURLResolver 'angrates.urls' (None:None) ^/> |
resolver_match | ResolverMatch(func=podcasts.views.clips, args=(), kwargs={}, url_name=clips, app_names=[], namespaces=[]) |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f84ef730ed0> |
wrapped_callback | <function clips at 0x7f84ea1997d0> |
/usr/local/lib/python2.7/site-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 clips at 0x7f84ea1997d0> |
callback_args | () |
callback_kwargs | {} |
e | AttributeError("'NoneType' object has no attribute 'strip'",) |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7f84f19fff50>> |
request | <WSGIRequest: GET '/clips/'> |
resolver | <RegexURLResolver 'angrates.urls' (None:None) ^/> |
resolver_match | ResolverMatch(func=podcasts.views.clips, args=(), kwargs={}, url_name=clips, app_names=[], namespaces=[]) |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f84ef730ed0> |
wrapped_callback | <function clips at 0x7f84ea1997d0> |
/usr/src/app/podcasts/views.py
in clips
response += "".join(clip_refresh_response_generator()) + "\n\n"
return HttpResponse(response, content_type='text/plain')
def clips(request, key=None):
if key:
clip = get_object_or_404(Clip, key=key)
return render(request, 'clip.html', {'clip': clip})
return render(request, 'clips.html', {'clips': Clip.objects.all()})...
def minical(request, feed='910', year=None, month=None):
if not year:
year = datetime.datetime.now().year
month = datetime.datetime.now().month
date = datetime.datetime(int(year), int(month), 1)
Variable | Value |
---|---|
key | None |
request | <WSGIRequest: GET '/clips/'> |
/usr/local/lib/python2.7/site-packages/django/shortcuts.py
in render
def render(request, template_name, context=None, content_type=None, status=None, using=None):
"""
Returns 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, **kwargs):
"""
Returns an HttpResponseRedirect to the appropriate URL for the arguments
Variable | Value |
---|---|
content_type | None |
context | {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>} |
request | <WSGIRequest: GET '/clips/'> |
status | None |
template_name | 'clips.html' |
using | None |
/usr/local/lib/python2.7/site-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 | {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>} |
request | <WSGIRequest: GET '/clips/'> |
template | <django.template.backends.django.Template object at 0x7f84e8b79490> |
template_name | 'clips.html' |
using | None |
/usr/local/lib/python2.7/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 | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
request | <WSGIRequest: GET '/clips/'> |
self | <django.template.backends.django.Template object at 0x7f84e8b79490> |
/usr/local/lib/python2.7/site-packages/django/template/base.py
in render
def render(self, context):
"Display stage -- can be called many times"
context.render_context.push()
try:
if context.template is None:
with context.bind_template(self):
context.template_name = self.name
return self._render(context)...
else:
return self._render(context)
finally:
context.render_context.pop()
def compile_nodelist(self):
Variable | Value |
---|---|
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
self | <django.template.base.Template object at 0x7f84e9068490> |
/usr/local/lib/python2.7/site-packages/django/template/base.py
in _render
def __iter__(self):
for node in self.nodelist:
for subnode in node:
yield subnode
def _render(self, context):
return self.nodelist.render(context)...
def render(self, context):
"Display stage -- can be called many times"
context.render_context.push()
try:
if context.template is None:
Variable | Value |
---|---|
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
self | <django.template.base.Template object at 0x7f84e9068490> |
/usr/local/lib/python2.7/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(force_text(bit))
return mark_safe(''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
bits | [] |
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
node | <ExtendsNode: extends 'base.html'> |
self | [<ExtendsNode: extends 'base.html'>] |
/usr/local/lib/python2.7/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.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
e | AttributeError("'NoneType' object has no attribute 'strip'",) |
self | <ExtendsNode: extends 'base.html'> |
/usr/local/lib/python2.7/site-packages/django/template/loader_tags.py
in render
blocks = {n.name: n for n in
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.
return compiled_parent._render(context)...
class IncludeNode(Node):
context_key = '__include_context'
def __init__(self, template, *args, **kwargs):
Variable | Value |
---|---|
block_context | <django.template.loader_tags.BlockContext object at 0x7f84e8ca5350> |
blocks | {u'breadcrumbs': <Block Node: breadcrumbs. Contents: [<TextNode: u'\n '>]>, u'content': <Block Node: content. Contents: []>, u'metadescription': <Block Node: metadescription. Contents: [<TextNode: u'Armstrong and Getty Podca'>]>, u'postfoot': <Block Node: postfoot. Contents: []>, u'posthead': <Block Node: posthead. Contents: []>, u'subtitle': <Block Node: subtitle. Contents: []>} |
compiled_parent | <django.template.base.Template object at 0x7f84e8ca5b50> |
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
node | <django.template.defaulttags.LoadNode object at 0x7f84e9068090> |
self | <ExtendsNode: extends 'base.html'> |
/usr/local/lib/python2.7/site-packages/django/template/base.py
in _render
def __iter__(self):
for node in self.nodelist:
for subnode in node:
yield subnode
def _render(self, context):
return self.nodelist.render(context)...
def render(self, context):
"Display stage -- can be called many times"
context.render_context.push()
try:
if context.template is None:
Variable | Value |
---|---|
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
self | <django.template.base.Template object at 0x7f84e8ca5b50> |
/usr/local/lib/python2.7/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(force_text(bit))
return mark_safe(''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
bit | u'"><i class="fa fa-rss"></i> New Podcast!!</a></li>\n </ol>\n </li>\n </ul>\n</nav>\n</div>\n\n\n\n' |
bits | [u'', u'\n<!DOCTYPE html>\n<html lang="en">\n<head>\n <meta charset="utf-8">\n <meta http-equiv="X-UA-Compatible" content="IE=edge">\n <meta name="viewport" content="width=device-width, initial-scale=1">\n\n <meta name="description" content="', u'Armstrong and Getty Podcast Calendar and Clip Gallery', u'" />\n <link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.armstrongandgettybingo.com/rss/" />\n <link rel="author" href="https://plus.google.com/ben174" />\n\n <title>Armstrong and Getty Bingo - ', u'Clip Gallery', u'</title>\n <link type="application/rss+xml" rel="alternate" title="Armstrong and Getty" href="http://www.armstrongandgettybingo.com/rss"/>\n\n <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"\n integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">\n <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css"\n integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous">\n <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">\n\n <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->\n <!--[if lt IE 9]>\n <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>\n <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>\n <![endif]-->\n <link rel="stylesheet" href="', u'/static/sass/base.css', u'">\n\n ', u'\n <link rel="stylesheet" href="/static/css/clips.css">\n', u'\n</head>\n<body>\n\n\n<nav class="navbar navbar-default">\n <div class="container-fluid">\n <div class="navbar-header">\n <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"\n data-target="#navbar-collapse" aria-expanded="false">\n <span class="sr-only">Toggle navigation</span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </button>\n <a class="navbar-brand" href="/">\n <img src="', u'/static/img/logo.png', u'" class="img-responsive">\n Armstrong & Getty<br/>\n <span class="bingo">Bingo<i>!</i></span>\n </a>\n </div>\n <div class="collapse navbar-collapse" id="navbar-collapse">\n <ul class="nav navbar-nav">\n ', u'\n <li><a href="/"><i class="fa fa-calendar"></i> Calendar</a></li>\n ', u'\n <li class="hidden-sm hidden-xs"><a href="', u'/clips/', u'"><i class="fa fa-video-camera"></i> Clip Gallery</a></li>\n <li class="nav-new"><a href="', u'/archives/', u'"><i class="fa fa-archive"></i> Archives</a></li>\n <li><a href="', u'/search/', u'"><i class="fa fa-search"></i> Search</a></li>\n <li><a href="', u'/podcast/', u'"><i class="fa fa-rss"></i> Podcast</a></li>\n <li><a href="', u'/about/', u'"><i class="fa fa-info-circle"></i> About</a></li>\n </ul>\n ', u'', u'\n </div><!-- /.navbar-collapse -->\n\n\n </div><!-- /.container-fluid -->\n</nav>\n\n<nav id="subnav" class="hidden-xs">\n <ul class="nav navbar-nav">\n <li>\n <ol class="breadcrumb">\n ', u'\n <li><a href="/">Home</a></li>\n <li class="active">Clip Gallery</li>\n', u'\n </ol>\n </li>\n </ul>\n\n <form class="navbar-form navbar-right breadcrumb-form" action="', u'/search/', u'" method="get" role="search">\n <div class="form-group">\n <div class="input-group">\n <div class="input-group-addon"><i class="fa fa-search"></i></div>\n <input type="text" class="form-control input-sm" name="q" placeholder=... <trimmed 4920 bytes string> |
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
node | <Block Node: content. Contents: []> |
self | [<django.template.defaulttags.LoadNode object at 0x7f84e9068090>, <TextNode: u'\n<!DOCTYPE html>\n<html la'>, <Block Node: metadescription. Contents: [<TextNode: u'Armstrong and Getty Podca'>]>, <TextNode: u'" />\n <link rel="alter'>, <Block Node: subtitle. Contents: []>, <TextNode: u'</title>\n <link type="'>, <django.templatetags.static.StaticNode object at 0x7f84e9068390>, <TextNode: u'">\n\n '>, <Block Node: posthead. Contents: []>, <TextNode: u'\n</head>\n<body>\n\n\n<nav cl'>, <django.templatetags.static.StaticNode object at 0x7f84e8b79950>, <TextNode: u'" class="img-responsive">'>, <IfNode>, <TextNode: u'\n <li clas'>, <django.template.defaulttags.URLNode object at 0x7f84e8c94090>, <TextNode: u'"><i class="fa fa-video-c'>, <django.template.defaulttags.URLNode object at 0x7f84e8c94490>, <TextNode: u'"><i class="fa fa-archive'>, <django.template.defaulttags.URLNode object at 0x7f84e8c941d0>, <TextNode: u'"><i class="fa fa-search"'>, <django.template.defaulttags.URLNode object at 0x7f84e8c94410>, <TextNode: u'"><i class="fa fa-rss"></'>, <django.template.defaulttags.URLNode object at 0x7f84e8c94310>, <TextNode: u'"><i class="fa fa-info-ci'>, <IfNode>, <TextNode: u'\n </div><!-- /.nav'>, <Block Node: breadcrumbs. Contents: [<TextNode: u'\n '>]>, <TextNode: u'\n </ol>\n '>, <django.template.defaulttags.URLNode object at 0x7f84e8f6f290>, <TextNode: u'" method="get" role="sear'>, <django.template.defaulttags.URLNode object at 0x7f84e8f6f150>, <TextNode: u'"><i class="fa fa-rss"></'>, <Block Node: content. Contents: []>, <TextNode: u'\n<footer class="footer">\n'>, <django.template.defaulttags.URLNode object at 0x7f84e9c4b850>, <TextNode: u'">Information About This '>, <Block Node: postfoot. Contents: []>, <TextNode: u'\n<script>\n (function(i'>] |
/usr/local/lib/python2.7/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.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
e | AttributeError("'NoneType' object has no attribute 'strip'",) |
self | <Block Node: content. Contents: []> |
/usr/local/lib/python2.7/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: u'\n <div class="containe'>, <For Node: for clip in clips, tail_len: 13>, <TextNode: u'\n </div>\n </div'>]> |
block_context | <django.template.loader_tags.BlockContext object at 0x7f84e8ca5350> |
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
push | <Block Node: content. Contents: [<TextNode: u'\n <div class="containe'>, <For Node: for clip in clips, tail_len: 13>, <TextNode: u'\n </div>\n </div'>]> |
self | <Block Node: content. Contents: []> |
/usr/local/lib/python2.7/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(force_text(bit))
return mark_safe(''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
bit | u'\n <div class="container">\n\n <h1>Clip Gallery</h2>\n <div class="well">\n <p>\n This is a publicly editable clip gallery. If anything is missing, or you have anything to add, please feel\n free to <a href="https://docs.google.com/spreadsheets/d/1Gq8ORD1x6DuzkxzAgEblrMUOLsZ3I4OvdWtkl-Vypj8/edit#gid=0">edit\n the source spreadsheet</a>.\n This gallery will automatically pull the updated data every ten minutes.\n </p>\n </div>\n <div class="row clips">\n ' |
bits | [u'\n <div class="container">\n\n <h1>Clip Gallery</h2>\n <div class="well">\n <p>\n This is a publicly editable clip gallery. If anything is missing, or you have anything to add, please feel\n free to <a href="https://docs.google.com/spreadsheets/d/1Gq8ORD1x6DuzkxzAgEblrMUOLsZ3I4OvdWtkl-Vypj8/edit#gid=0">edit\n the source spreadsheet</a>.\n This gallery will automatically pull the updated data every ten minutes.\n </p>\n </div>\n <div class="row clips">\n '] |
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
node | <For Node: for clip in clips, tail_len: 13> |
self | [<TextNode: u'\n <div class="containe'>, <For Node: for clip in clips, tail_len: 13>, <TextNode: u'\n </div>\n </div'>] |
/usr/local/lib/python2.7/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.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
e | AttributeError("'NoneType' object has no attribute 'strip'",) |
self | <For Node: for clip in clips, tail_len: 13> |
/usr/local/lib/python2.7/site-packages/django/template/defaulttags.py
in render
unpacked_vars = dict(zip(self.loopvars, item))
pop_context = True
context.update(unpacked_vars)
else:
context[self.loopvars[0]] = item
for node in self.nodelist_loop:
nodelist.append(node.render_annotated(context))...
if pop_context:
# The loop variables were pushed on to the context so pop them
# off again. This is necessary because the tag lets the length
# of loopvars differ to the length of each set of items and we
# don't want to leave any vars from the previous loop on the
Variable | Value |
---|---|
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
i | 6 |
item | <Clip: <HTML>> |
len_values | 185 |
loop_dict | {u'counter': 7, u'counter0': 6, u'first': False, u'last': False, u'parentloop': {}, u'revcounter': 179, u'revcounter0': 178} |
node | <IfNode> |
nodelist | [u'\n <div class="col-sm-6 col-md-6">\n <div class="thumbnail">\n <a href="/clips/', u'do_it_live', u'">\n ', u'\n <img src="http://img.youtube.com/vi/V1M6EYA14eU/0.jpg" class="img-thumbnail img-responsive clip-thumbnail">\n ', u'\n </a>\n\n <div class="caption">\n <h3><a href="/clips/', u'do_it_live', u'">', u'F*ck it! We'll do it live!', u'</a></h3>\n <p class="clip-description">\n ', u'\n Bill O'Reilly goes nuts\n ', u'\n </p>\n </div>\n </div>\n </div>\n ', u'', u'\n ', u'\n <div class="col-sm-6 col-md-6">\n <div class="thumbnail">\n <a href="/clips/', u'<!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing', u'">\n ', u'\n <img src="/static/img/microphone-icon.png"\n class="img-thumbnail img-responsive clip-thumbnail">\n ', u'\n </a>\n\n <div class="caption">\n <h3><a href="/clips/', u'<!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing', u'">', u' presentations and spreadsheets"><meta name="viewport" content="width=device-width', u'</a></h3>\n <p class="clip-description">\n ', u'\n initial-scale=1.0\n ', u'\n </p>\n </div>\n </div>\n </div>\n ', u'\n <div class="clearfix"></div>\n ', u'\n ', u'\n <div class="col-sm-6 col-md-6">\n <div class="thumbnail">\n <a href="/clips/', u'Bear!', u'">\n ', u'\n <img src="http://img.youtube.com/vi/nU5cMZymSr0/0.jpg" class="img-thumbnail img-responsive clip-thumbnail">\n ', u'\n </a>\n\n <div class="caption">\n <h3><a href="/clips/', u'Bear!', u'">', u'Why are you here? You're supposed to be asleep.', u'</a></h3>\n <p class="clip-description">\n ', u'\n Chick pleads with a bear not to destroy her kayak. \n ', u'\n </p>\n </div>\n </div>\n </div>\n ', u'', u'\n ', u'\n <div class="col-sm-6 col-md-6">\n <div class="thumbnail">\n <a href="/clips/', u'Mailbag theme', u'">\n ', u'\n <img src="/static/img/microphone-icon.png"\n class="img-thumbnail img-responsive clip-thumbnail">\n ', u'\n </a>\n\n <div class="caption">\n <h3><a href="/clips/', u'Mailbag theme', u'">', u'', u'</a></h3>\n <p class="clip-description">\n ', u'', u'\n </p>\n </div>\n </div>\n ... <trimmed 6436 bytes string> |
num_loopvars | 1 |
parentloop | {} |
pop_context | False |
self | <For Node: for clip in clips, tail_len: 13> |
unpack | False |
values | <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']> |
/usr/local/lib/python2.7/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.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
e | AttributeError("'NoneType' object has no attribute 'strip'",) |
self | <IfNode> |
/usr/local/lib/python2.7/site-packages/django/template/defaulttags.py
in render
return NodeList(node for _, nodelist in self.conditions_nodelists for node in nodelist)
def render(self, context):
for condition, nodelist in self.conditions_nodelists:
if condition is not None: # if / elif clause
try:
match = condition.eval(context)...
except VariableDoesNotExist:
match = None
else: # else clause
match = True
if match:
Variable | Value |
---|---|
condition | (literal <django.template.base.FilterExpression object at 0x7f84e8b79d90>) |
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
nodelist | [<TextNode: u'\n '>, <Variable Node: clip.thumbnail_url>, <TextNode: u'" class="img-thumbnail im'>] |
self | <IfNode> |
/usr/local/lib/python2.7/site-packages/django/template/defaulttags.py
in eval
self.value = value
self.text = text # for better error messages
def display(self):
return self.text
def eval(self, context):
return self.value.resolve(context, ignore_failures=True)...
class TemplateIfParser(IfParser):
error_class = TemplateSyntaxError
def __init__(self, parser, *args, **kwargs):
Variable | Value |
---|---|
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
self | (literal <django.template.base.FilterExpression object at 0x7f84e8b79d90>) |
/usr/local/lib/python2.7/site-packages/django/template/base.py
in resolve
self.filters = filters
self.var = var_obj
def resolve(self, context, ignore_failures=False):
if isinstance(self.var, Variable):
try:
obj = self.var.resolve(context)...
except VariableDoesNotExist:
if ignore_failures:
obj = None
else:
string_if_invalid = context.template.engine.string_if_invalid
if string_if_invalid:
Variable | Value |
---|---|
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
ignore_failures | True |
self | <django.template.base.FilterExpression object at 0x7f84e8b79d90> |
/usr/local/lib/python2.7/site-packages/django/template/base.py
in resolve
var)
self.lookups = tuple(var.split(VARIABLE_ATTRIBUTE_SEPARATOR))
def resolve(self, context):
"""Resolve this variable against a given context."""
if self.lookups is not None:
# We're dealing with a variable that needs to be resolved
value = self._resolve_lookup(context)...
else:
# We're dealing with a literal, so it's already been "resolved"
value = self.literal
if self.translate:
is_safe = isinstance(value, SafeData)
msgid = value.replace('%', '%%')
Variable | Value |
---|---|
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
self | <Variable: u'clip.thumbnail_url'> |
/usr/local/lib/python2.7/site-packages/django/template/base.py
in _resolve_lookup
# ValueError/IndexError are for numpy.array lookup on
# numpy < 1.9 and 1.9+ respectively
except (TypeError, AttributeError, KeyError, ValueError, IndexError):
try: # attribute lookup
# Don't return class attributes if the class is the context:
if isinstance(current, BaseContext) and getattr(type(current), bit):
raise AttributeError
current = getattr(current, bit)...
except (TypeError, AttributeError) as e:
# Reraise an AttributeError raised by a @property
if (isinstance(e, AttributeError) and
not isinstance(current, BaseContext) and bit in dir(current)):
raise
try: # list-index lookup
Variable | Value |
---|---|
bit | u'thumbnail_url' |
context | [{'False': False, 'None': None, 'True': True}, {}, {}, {'clips': <QuerySet [<Clip: do_it_live>, <Clip: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing>, <Clip: Bear!>, <Clip: Mailbag theme>, <Clip: mi>, <Clip: Don't Do It>, <Clip: <HTML>>, <Clip: China!>, <Clip: barbaric>, <Clip: enjoy>, <Clip: >, <Clip: Donkey Punch>, <Clip: Study the world!>, <Clip: goodbye>, <Clip: new transistion music>, <Clip: monday_intro>, <Clip: America>, <Clip: <!DOCTYPE html>>, <Clip: gay_blind>, <Clip: monkey_court>, '...(remaining elements truncated)...']>}] |
current | <Clip: <HTML>> |
e | AttributeError("'NoneType' object has no attribute 'strip'",) |
self | <Variable: u'clip.thumbnail_url'> |
template_name | 'clips.html' |
/usr/src/app/podcasts/models.py
in thumbnail_url
video_key = query.path.split('/')[2]
if query.path[:3] == '/v/':
video_key = query.path.split('/')[2]
return video_key
@property
def thumbnail_url(self):
if self.youtube_key:...
return 'http://img.youtube.com/vi/%s/0.jpg' % self.youtube_key
def __unicode__(self):
return self.key
Variable | Value |
---|---|
self | <Clip: <HTML>> |
/usr/src/app/podcasts/models.py
in youtube_key
time = time.replace('t=', 'start=')
ret += '&' + time + '&autoplay=true'
return ret
@property
def youtube_key(self):
video_key = None
query = urlparse.urlparse(self.link.strip())...
p = urlparse.parse_qs(query.query)
if query.hostname == 'youtu.be':
video_key = query.path[1:]
if query.hostname in ('www.youtube.com', 'youtube.com'):
if query.path == '/watch':
video_key = p['v'][0]
Variable | Value |
---|---|
self | <Clip: <HTML>> |
video_key | None |
AnonymousUser
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
HTTP_ACCEPT | '*/*' |
HTTP_CONNECTION | 'close' |
HTTP_HOST | 'armstrongandgettybingo.com' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_X_FORWARDED_FOR | '54.205.179.155' |
HTTP_X_REAL_IP | '54.205.179.155' |
PATH_INFO | u'/clips/' |
QUERY_STRING | '' |
RAW_URI | '/clips/' |
REMOTE_ADDR | '172.17.0.5' |
REMOTE_PORT | '40088' |
REQUEST_METHOD | 'GET' |
SCRIPT_NAME | u'' |
SERVER_NAME | '0.0.0.0' |
SERVER_PORT | '8000' |
SERVER_PROTOCOL | 'HTTP/1.0' |
SERVER_SOFTWARE | 'gunicorn/19.6.0' |
gunicorn.socket | <socket._socketobject object at 0x7f84e8d1b360> |
wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f84e9068b90> |
wsgi.file_wrapper | '' |
wsgi.input | <gunicorn.http.body.Body object at 0x7f84e9068710> |
wsgi.multiprocess | True |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'http' |
wsgi.version | (1, 0) |
angrates.settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ALLOWED_HOSTS | ['.armstrongandgettybingo.com', 'www.armstrongandgettybingo.com', '.armstrongandgettybingo.com.'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | [u'django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | u'********************' |
AUTH_USER_MODEL | u'auth.User' |
BASE_DIR | '/usr/src/app' |
CACHES | {u'default': {u'BACKEND': u'django.core.cache.backends.locmem.LocMemCache'}} |
CACHE_MIDDLEWARE_ALIAS | u'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | u'********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
CSRF_COOKIE_AGE | 31449600 |
CSRF_COOKIE_DOMAIN | None |
CSRF_COOKIE_HTTPONLY | False |
CSRF_COOKIE_NAME | u'csrftoken' |
CSRF_COOKIE_PATH | u'/' |
CSRF_COOKIE_SECURE | False |
CSRF_FAILURE_VIEW | u'django.views.csrf.csrf_failure' |
CSRF_HEADER_NAME | u'HTTP_X_CSRFTOKEN' |
CSRF_TRUSTED_ORIGINS | [] |
DATABASES | {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': 'postgres', 'NAME': 'angrates', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '5432', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'postgres'}} |
DATABASE_ROUTERS | [] |
DATA_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 |
DATETIME_FORMAT | u'N j, Y, P' |
DATETIME_INPUT_FORMATS | [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] |
DATE_FORMAT | u'N j, Y' |
DATE_INPUT_FORMATS | [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] |
DEBUG | True |
DEBUG_PROPAGATE_EXCEPTIONS | False |
DECIMAL_SEPARATOR | u'.' |
DEFAULT_CHARSET | u'utf-8' |
DEFAULT_CONTENT_TYPE | u'text/html' |
DEFAULT_EXCEPTION_REPORTER_FILTER | u'django.views.debug.SafeExceptionReporterFilter' |
DEFAULT_FEED | '650' |
DEFAULT_FILE_STORAGE | u'django.core.files.storage.FileSystemStorage' |
DEFAULT_FROM_EMAIL | u'webmaster@localhost' |
DEFAULT_INDEX_TABLESPACE | u'' |
DEFAULT_TABLESPACE | u'' |
DISALLOWED_USER_AGENTS | [] |
EMAIL_BACKEND | u'django.core.mail.backends.smtp.EmailBackend' |
EMAIL_HOST | u'localhost' |
EMAIL_HOST_PASSWORD | u'********************' |
EMAIL_HOST_USER | u'' |
EMAIL_PORT | 25 |
EMAIL_SSL_CERTFILE | None |
EMAIL_SSL_KEYFILE | u'********************' |
EMAIL_SUBJECT_PREFIX | u'[Django] ' |
EMAIL_TIMEOUT | None |
EMAIL_USE_SSL | False |
EMAIL_USE_TLS | False |
FILE_CHARSET | u'utf-8' |
FILE_UPLOAD_DIRECTORY_PERMISSIONS | None |
FILE_UPLOAD_HANDLERS | [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'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 |
IGNORABLE_404_URLS | [] |
INSTALLED_APPS | ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'podcasts'] |
INTERNAL_IPS | [] |
LANGUAGES | [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] |
LANGUAGES_BIDI | [u'he', u'ar', u'fa', u'ur'] |
LANGUAGE_CODE | 'en-us' |
LANGUAGE_COOKIE_AGE | None |
LANGUAGE_COOKIE_DOMAIN | None |
LANGUAGE_COOKIE_NAME | u'django_language' |
LANGUAGE_COOKIE_PATH | u'/' |
LOCALE_PATHS | [] |
LOGGING | {} |
LOGGING_CONFIG | u'logging.config.dictConfig' |
LOGIN_REDIRECT_URL | u'/accounts/profile/' |
LOGIN_URL | u'/accounts/login/' |
LOGOUT_REDIRECT_URL | None |
MANAGERS | [] |
MEDIA_ROOT | u'' |
MEDIA_URL | u'' |
MESSAGE_STORAGE | u'django.contrib.messages.storage.fallback.FallbackStorage' |
MIDDLEWARE | None |
MIDDLEWARE_CLASSES | ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] |
MIGRATION_MODULES | {} |
MONTH_DAY_FORMAT | u'F j' |
NUMBER_GROUPING | 0 |
PASSWORD_HASHERS | u'********************' |
PASSWORD_RESET_TIMEOUT_DAYS | u'********************' |
PREPEND_WWW | False |
REDDIT_CLIENT_SECRET | u'********************' |
REDDIT_PASSWORD | u'********************' |
ROOT_URLCONF | 'angrates.urls' |
SECRET_KEY | u'********************' |
SECURE_BROWSER_XSS_FILTER | False |
SECURE_CONTENT_TYPE_NOSNIFF | False |
SECURE_HSTS_INCLUDE_SUBDOMAINS | False |
SECURE_HSTS_SECONDS | 0 |
SECURE_PROXY_SSL_HEADER | None |
SECURE_REDIRECT_EXEMPT | [] |
SECURE_SSL_HOST | None |
SECURE_SSL_REDIRECT | False |
SERVER_EMAIL | u'root@localhost' |
SESSION_CACHE_ALIAS | u'default' |
SESSION_COOKIE_AGE | 1209600 |
SESSION_COOKIE_DOMAIN | None |
SESSION_COOKIE_HTTPONLY | True |
SESSION_COOKIE_NAME | u'sessionid' |
SESSION_COOKIE_PATH | u'/' |
SESSION_COOKIE_SECURE | False |
SESSION_ENGINE | u'django.contrib.sessions.backends.db' |
SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
SESSION_FILE_PATH | None |
SESSION_SAVE_EVERY_REQUEST | False |
SESSION_SERIALIZER | u'django.contrib.sessions.serializers.JSONSerializer' |
SETTINGS_MODULE | 'angrates.settings' |
SHORT_DATETIME_FORMAT | u'm/d/Y P' |
SHORT_DATE_FORMAT | u'm/d/Y' |
SIGNING_BACKEND | u'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
STATICFILES_DIRS | ['/usr/src/app/static'] |
STATICFILES_FINDERS | [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | u'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | '/usr/src/app/static_root' |
STATIC_URL | '/static/' |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['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 | u'django.test.runner.DiscoverRunner' |
THOUSAND_SEPARATOR | u',' |
TIME_FORMAT | u'P' |
TIME_INPUT_FORMATS | [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] |
TIME_ZONE | u'America/Chicago' |
TWITTER_ACCESS_TOKEN_KEY | u'********************' |
TWITTER_ACCESS_TOKEN_SECRET | u'********************' |
TWITTER_CONSUMER_KEY | u'********************' |
TWITTER_CONSUMER_SECRET | u'********************' |
USE_ETAGS | False |
USE_I18N | True |
USE_L10N | True |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | False |
USE_X_FORWARDED_HOST | False |
USE_X_FORWARDED_PORT | False |
WSGI_APPLICATION | 'angrates.wsgi.application' |
X_FRAME_OPTIONS | u'SAMEORIGIN' |
YEAR_MONTH_FORMAT | u'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.