expected str, bytes or os.PathLike object, not NoneType
Request Method: | GET |
---|---|
Request URL: | http://www.worldsbestpaintings.net/artistsandpaintings/painting/186/ |
Django Version: | 2.2.14 |
Exception Type: | TypeError |
Exception Value: | expected str, bytes or os.PathLike object, not NoneType |
Exception Location: | /home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/posixpath.py in dirname, line 156 |
Python Executable: | /home/greatworksart/greatworksofwesternart.net/env/bin/python |
Python Version: | 3.6.9 |
Python Path: | ['/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-packages', '/home/greatworksart/greatworksofwesternart.net/env/bin', '/home/greatworksart/greatworksofwesternart.net/bestpaintings', '/home/greatworksart/greatworksofwesternart.net', '/usr/share/passenger/helper-scripts', '/home/greatworksart/greatworksofwesternart.net/env/lib/python36.zip', '/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6', '/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/lib-dynload', '/usr/lib/python3.6', '/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-packages', '/home/greatworksart/greatworksofwesternart.net'] |
Server time: | Thu, 28 Mar 2024 12:43:31 +0000 |
In template /home/greatworksart/greatworksofwesternart.net/bestpaintings/templates/base.html
, error at line 0
1 | {% load pages_tags static %} |
---|---|
2 | <!doctype html> |
3 | <html lang="en"> |
4 | <head> |
5 | <!-- Required meta tags --> |
6 | <meta charset="utf-8"> |
7 | <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> |
8 | |
9 | <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous"> |
10 | <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100;300;400;500;700;900&display=swap" rel="stylesheet"> |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-packages/django/core/handlers/exception.py
in inner
This decorator is automatically applied to all middleware to ensure that
no middleware leaks an exception and that the next middleware in the stack
can rely on getting a response instead of an exception.
"""
@wraps(get_response)
def inner(request):
try:
response = get_response(request)…
except Exception as exc:
response = response_for_exception(request, exc)
return response
return inner
Variable | Value |
---|---|
exc | TypeError('expected str, bytes or os.PathLike object, not NoneType',) |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x33f9500e080>> |
request | <WSGIRequest: GET '/artistsandpaintings/painting/186/'> |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/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 show_painting_details at 0x33f94f8f048> |
callback_args | () |
callback_kwargs | {'painting_id': '186'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x33f9803b940>> |
request | <WSGIRequest: GET '/artistsandpaintings/painting/186/'> |
resolver | <URLResolver 'bestpaintings.urls' (None:None) '^/'> |
resolver_match | ResolverMatch(func=artistsandpaintings.views.show_painting_details, args=(), kwargs={'painting_id': '186'}, url_name=get_painting_detail, app_names=[], namespaces=[], route=artistsandpaintings/painting/<painting_id>/) |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x33f9500e080> |
wrapped_callback | <function show_painting_details at 0x33f94f8f048> |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/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 show_painting_details at 0x33f94f8f048> |
callback_args | () |
callback_kwargs | {'painting_id': '186'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x33f9803b940>> |
request | <WSGIRequest: GET '/artistsandpaintings/painting/186/'> |
resolver | <URLResolver 'bestpaintings.urls' (None:None) '^/'> |
resolver_match | ResolverMatch(func=artistsandpaintings.views.show_painting_details, args=(), kwargs={'painting_id': '186'}, url_name=get_painting_detail, app_names=[], namespaces=[], route=artistsandpaintings/painting/<painting_id>/) |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x33f9500e080> |
wrapped_callback | <function show_painting_details at 0x33f94f8f048> |
/home/greatworksart/greatworksofwesternart.net/bestpaintings/artistsandpaintings/views.py
in show_painting_details
paintings_of_interest = random.sample(list(paintings_of_interest), 3)
c = {
'slide_number': 2,
'painting': painting,
'paintings_of_interest': paintings_of_interest,
'orientation': orientation,
}
return render(request, template, context=c)…
Variable | Value |
---|---|
c | {'orientation': 'portrait', 'painting': <Painting: Carnival>, 'paintings_of_interest': [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>], 'slide_number': 2} |
category | <Category: Neue Sachlichkeit> |
orientation | 'portrait' |
painting | <Painting: Carnival> |
painting_categories | [18, 50] |
painting_id | '186' |
paintings_of_interest | [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>] |
request | <WSGIRequest: GET '/artistsandpaintings/painting/186/'> |
template | 'artistsandpaintings/show_painting_detail.html' |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-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 | {'orientation': 'portrait', 'painting': <Painting: Carnival>, 'paintings_of_interest': [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>], 'slide_number': 2} |
request | <WSGIRequest: GET '/artistsandpaintings/painting/186/'> |
status | None |
template_name | 'artistsandpaintings/show_painting_detail.html' |
using | None |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/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 | {'orientation': 'portrait', 'painting': <Painting: Carnival>, 'paintings_of_interest': [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>], 'slide_number': 2} |
request | <WSGIRequest: GET '/artistsandpaintings/painting/186/'> |
template | <django.template.backends.django.Template object at 0x33f94898e10> |
template_name | 'artistsandpaintings/show_painting_detail.html' |
using | None |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-packages/django/template/backends/django.py
in render
@property
def origin(self):
return self.template.origin
def render(self, context=None, request=None):
context = make_context(context, request, autoescape=self.backend.engine.autoescape)
try:
return self.template.render(context)…
except TemplateDoesNotExist as exc:
reraise(exc, self.backend)
def copy_exception(exc, backend=None):
"""
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'slide_number': 2, 'painting': <Painting: Carnival>, 'paintings_of_interest': [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>], 'orientation': 'portrait'}] |
request | <WSGIRequest: GET '/artistsandpaintings/painting/186/'> |
self | <django.template.backends.django.Template object at 0x33f94898e10> |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-packages/django/template/base.py
in render
def render(self, context):
"Display stage -- can be called many times"
with context.render_context.push_state(self):
if context.template is None:
with context.bind_template(self):
context.template_name = self.name
return self._render(context)…
else:
return self._render(context)
def compile_nodelist(self):
"""
Parse and compile the template source into a nodelist. If debug
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'slide_number': 2, 'painting': <Painting: Carnival>, 'paintings_of_interest': [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>], 'orientation': 'portrait'}] |
self | <django.template.base.Template object at 0x33f9479f860> |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-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 | [{'True': True, 'False': False, 'None': None}, {}, {}, {'slide_number': 2, 'painting': <Painting: Carnival>, 'paintings_of_interest': [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>], 'orientation': 'portrait'}] |
self | <django.template.base.Template object at 0x33f9479f860> |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-packages/django/template/base.py
in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = node.render_annotated(context)…
else:
bit = node
bits.append(str(bit))
return mark_safe(''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
bits | [] |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'slide_number': 2, 'painting': <Painting: Carnival>, 'paintings_of_interest': [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>], 'orientation': 'portrait'}] |
node | <ExtendsNode: extends "base.html"> |
self | [<ExtendsNode: extends "base.html">] |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-packages/django/template/base.py
in render_annotated
"""
Render the node. If debug is True and an exception occurs during
rendering, the exception is annotated with contextual line information
where it occurred in the template. For internal usage this method is
preferred over using the render method directly.
"""
try:
return self.render(context)…
except Exception as e:
if context.template.engine.debug and not hasattr(e, 'template_debug'):
e.template_debug = context.render_context.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'slide_number': 2, 'painting': <Painting: Carnival>, 'paintings_of_interest': [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>], 'orientation': 'portrait'}] |
self | <ExtendsNode: extends "base.html"> |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-packages/django/template/loader_tags.py
in render
compiled_parent.nodelist.get_nodes_by_type(BlockNode)}
block_context.add_blocks(blocks)
break
# Call Template._render explicitly so the parser context stays
# the same.
with context.render_context.push_state(compiled_parent, isolated_context=False):
return compiled_parent._render(context)…
class IncludeNode(Node):
context_key = '__include_context'
def __init__(self, template, *args, extra_context=None, isolated_context=False, **kwargs):
Variable | Value |
---|---|
block_context | <django.template.loader_tags.BlockContext object at 0x33f9479f390> |
blocks | {'column2': <Block Node: column2. Contents: [<TextNode: '\n '>]>, 'column3': <Block Node: column3. Contents: [<TextNode: '\n '>]>, 'extra_head': <Block Node: extra_head. Contents: [<TextNode: '\n '>]>, 'main_content': <Block Node: main_content. Contents: [<TextNode: '\n '>]>, 'overall_block': <Block Node: overall_block. Contents: [<TextNode: '\n\n '>, <Block Node: column3. Contents: [<TextNode: '\n '>]>, <TextNode: '\n\n <div class="containe'>, <Block Node: main_content. Contents: [<TextNode: '\n '>]>, <TextNode: '\n </div>\n </div>\n\n '>, <Block Node: column2. Contents: [<TextNode: '\n '>]>, <TextNode: '\n\n '>]>, 'slider': <Block Node: slider. Contents: [<TextNode: '\n <div id="car'>, <django.template.defaulttags.LoadNode object at 0x33f9483f780>, <TextNode: '\n\n '>, <IfNode>, <TextNode: '\n\n '>, <ForNode: for slide in slides, tail_len: 9>, <TextNode: '\n </div>\n '>]>, 'title': <Block Node: title. Contents: [<TextNode: 'Based on the 100 Best Pai'>]>} |
compiled_parent | <django.template.base.Template object at 0x33f94947390> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'slide_number': 2, 'painting': <Painting: Carnival>, 'paintings_of_interest': [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>], 'orientation': 'portrait'}] |
node | <django.template.defaulttags.LoadNode object at 0x33f9471f588> |
self | <ExtendsNode: extends "base.html"> |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-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 | [{'True': True, 'False': False, 'None': None}, {}, {}, {'slide_number': 2, 'painting': <Painting: Carnival>, 'paintings_of_interest': [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>], 'orientation': 'portrait'}] |
self | <django.template.base.Template object at 0x33f94947390> |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-packages/django/template/base.py
in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = node.render_annotated(context)…
else:
bit = node
bits.append(str(bit))
return mark_safe(''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
bit | '</title>\n\n ' |
bits | ['', '\n' '<!doctype html>\n' '<html lang="en">\n' ' <head>\n' ' <!-- Required meta tags -->\n' ' <meta charset="utf-8">\n' ' <meta name="viewport" content="width=device-width, initial-scale=1, ' 'shrink-to-fit=no">\n' '\n' ' <link rel="stylesheet" ' 'href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" ' 'integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" ' 'crossorigin="anonymous">\n' ' <link ' 'href="https://fonts.googleapis.com/css2?family=Roboto:wght@100;300;400;500;700;900&display=swap" ' 'rel="stylesheet">\n' ' <!-- Bootstrap CSS -->\n' ' <link rel="stylesheet" ' 'href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" ' 'type="text/css">\n' ' <link rel="stylesheet" href="', '/static/css/control.css', '?v=24" type="text/css" />\n <title>Great Works of Western Art - ', '\nCarnival\n', '</title>\n\n '] |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'slide_number': 2, 'painting': <Painting: Carnival>, 'paintings_of_interest': [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>], 'orientation': 'portrait'}] |
node | <Block Node: extra_head. Contents: [<TextNode: '\n '>]> |
self | [<django.template.defaulttags.LoadNode object at 0x33f9471f588>, <TextNode: '\n<!doctype html>\n<html la'>, <django.templatetags.static.StaticNode object at 0x33f9471fe48>, <TextNode: '?v=24" type="text/css" />'>, <Block Node: title. Contents: [<TextNode: 'Based on the 100 Best Pai'>]>, <TextNode: '</title>\n\n '>, <Block Node: extra_head. Contents: [<TextNode: '\n '>]>, <TextNode: '\n <script>\n (func'>, <django.template.loader_tags.IncludeNode object at 0x33f9471fb38>, <TextNode: '\n <div class="containe'>, <Block Node: slider. Contents: [<TextNode: '\n <div id="car'>, <django.template.defaulttags.LoadNode object at 0x33f9483f780>, <TextNode: '\n\n '>, <IfNode>, <TextNode: '\n\n '>, <ForNode: for slide in slides, tail_len: 9>, <TextNode: '\n </div>\n '>]>, <TextNode: '\n </div>\n\n '>, <Block Node: overall_block. Contents: [<TextNode: '\n\n '>, <Block Node: column3. Contents: [<TextNode: '\n '>]>, <TextNode: '\n\n <div class="containe'>, <Block Node: main_content. Contents: [<TextNode: '\n '>]>, <TextNode: '\n </div>\n </div>\n\n '>, <Block Node: column2. Contents: [<TextNode: '\n '>]>, <TextNode: '\n\n '>]>, <TextNode: '\n <div class="row foot'>, <django.templatetags.static.StaticNode object at 0x33f94908b38>, <TextNode: '?v=3" alt="Cotswold Code '>] |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-packages/django/template/base.py
in render_annotated
"""
Render the node. If debug is True and an exception occurs during
rendering, the exception is annotated with contextual line information
where it occurred in the template. For internal usage this method is
preferred over using the render method directly.
"""
try:
return self.render(context)…
except Exception as e:
if context.template.engine.debug and not hasattr(e, 'template_debug'):
e.template_debug = context.render_context.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'slide_number': 2, 'painting': <Painting: Carnival>, 'paintings_of_interest': [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>], 'orientation': 'portrait'}] |
self | <Block Node: extra_head. Contents: [<TextNode: '\n '>]> |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-packages/django/template/loader_tags.py
in render
push = block = block_context.pop(self.name)
if block is None:
block = self
# Create new block so we can store context without thread-safety issues.
block = type(self)(block.name, block.nodelist)
block.context = context
context['block'] = block
result = block.nodelist.render(context)…
if push is not None:
block_context.push(self.name, push)
return result
def super(self):
if not hasattr(self, 'context'):
Variable | Value |
---|---|
block | <Block Node: extra_head. Contents: [<TextNode: '\n<script src="'>, <django.templatetags.static.StaticNode object at 0x33f946aa278>, <TextNode: '"></script>\n\n<script type'>, <Variable Node: request.path>, <TextNode: '" />\n<meta property="og:t'>, <Variable Node: painting.painting_name>, <TextNode: '" />\n<meta property="og:d'>, <IfNode>, <TextNode: '\n\n<!-- Twitter Share -->\n'>, <Variable Node: painting.painting_name>, <TextNode: '">\n<meta name="twitter:de'>, <Variable Node: painting.article|safe|striptags|truncatechars:"200">, <TextNode: '">\n<meta name="twitter:im'>, <filebrowser.templatetags.fb_versions.VersionNode object at 0x33f94847550>, <TextNode: '">\n<meta name="twitter:do'>]> |
block_context | <django.template.loader_tags.BlockContext object at 0x33f9479f390> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'slide_number': 2, 'painting': <Painting: Carnival>, 'paintings_of_interest': [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>], 'orientation': 'portrait'}] |
push | <Block Node: extra_head. Contents: [<TextNode: '\n<script src="'>, <django.templatetags.static.StaticNode object at 0x33f946aa278>, <TextNode: '"></script>\n\n<script type'>, <Variable Node: request.path>, <TextNode: '" />\n<meta property="og:t'>, <Variable Node: painting.painting_name>, <TextNode: '" />\n<meta property="og:d'>, <IfNode>, <TextNode: '\n\n<!-- Twitter Share -->\n'>, <Variable Node: painting.painting_name>, <TextNode: '">\n<meta name="twitter:de'>, <Variable Node: painting.article|safe|striptags|truncatechars:"200">, <TextNode: '">\n<meta name="twitter:im'>, <filebrowser.templatetags.fb_versions.VersionNode object at 0x33f94847550>, <TextNode: '">\n<meta name="twitter:do'>]> |
self | <Block Node: extra_head. Contents: [<TextNode: '\n '>]> |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-packages/django/template/base.py
in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = node.render_annotated(context)…
else:
bit = node
bits.append(str(bit))
return mark_safe(''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
bit | '">\n<meta name="twitter:image" content="http://www.greatworksofwesternart.net' |
bits | ['\n<script src="', '/static/js/jquery.tools.min.js', '"></script>\n' '\n' '<script type="text/javascript">\n' '// perform JavaScript after the document is scriptable.\n' '$(function() {\n' ' // setup ul.tabs to work as tabs for each div directly under div.panes\n' ' $("ul.tabs").tabs("div.panes > div");\n' '});\n' '</script>\n' '<script type="text/javascript">var switchTo5x=true;</script>\n' '<script type="text/javascript" ' 'src="http://w.sharethis.com/button/buttons.js"></script>\n' '<script type="text/javascript">stLight.options({publisher: ' '"bf3a354d-9dbd-4fc3-a7a9-7ebc30323497", doNotHash: false, doNotCopy: false, ' 'hashAddressBar: false});</script>\n' '\n' ' <!-- FACEBOOK SHARE -->\n' '<meta property="og:url" ' 'content="http://www.greatworksofwesternart.net', '/artistsandpaintings/painting/186/', '" />\n' '<meta property="og:type" content="website" />\n' '<meta property="og:title" content="', 'Carnival', '" />\n<meta property="og:description" content="" />\n', '', '\n' '\n' '<!-- Twitter Share -->\n' '<meta name="twitter:card" content="summary_large_image">\n' '<meta name="twitter:title" content="', 'Carnival', '">\n<meta name="twitter:description" content="', 'Max Beckmann: Carnival - 1920\r\n' 'London, Tate Modern\r\n' 'Max Beckmann was one of the many German artists in a particularly talented ' 'generation whose mental health was shattered by the outbreak of the Firs…', '">\n' '<meta name="twitter:image" content="http://www.greatworksofwesternart.net'] |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'slide_number': 2, 'painting': <Painting: Carnival>, 'paintings_of_interest': [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>], 'orientation': 'portrait'}] |
node | <filebrowser.templatetags.fb_versions.VersionNode object at 0x33f94847550> |
self | [<TextNode: '\n<script src="'>, <django.templatetags.static.StaticNode object at 0x33f946aa278>, <TextNode: '"></script>\n\n<script type'>, <Variable Node: request.path>, <TextNode: '" />\n<meta property="og:t'>, <Variable Node: painting.painting_name>, <TextNode: '" />\n<meta property="og:d'>, <IfNode>, <TextNode: '\n\n<!-- Twitter Share -->\n'>, <Variable Node: painting.painting_name>, <TextNode: '">\n<meta name="twitter:de'>, <Variable Node: painting.article|safe|striptags|truncatechars:"200">, <TextNode: '">\n<meta name="twitter:im'>, <filebrowser.templatetags.fb_versions.VersionNode object at 0x33f94847550>, <TextNode: '">\n<meta name="twitter:do'>] |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-packages/django/template/base.py
in render_annotated
"""
Render the node. If debug is True and an exception occurs during
rendering, the exception is annotated with contextual line information
where it occurred in the template. For internal usage this method is
preferred over using the render method directly.
"""
try:
return self.render(context)…
except Exception as e:
if context.template.engine.debug and not hasattr(e, 'template_debug'):
e.template_debug = context.render_context.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'slide_number': 2, 'painting': <Painting: Carnival>, 'paintings_of_interest': [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>], 'orientation': 'portrait'}] |
self | <filebrowser.templatetags.fb_versions.VersionNode object at 0x33f94847550> |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-packages/filebrowser/templatetags/fb_versions.py
in render
elif isinstance(source, File):
source = source.name
else: # string
source = source
site = context.get('filebrowser_site', get_default_site())
if FORCE_PLACEHOLDER or (SHOW_PLACEHOLDER and not site.storage.isfile(source)):
source = PLACEHOLDER
fileobject = FileObject(source, site=site)…
try:
version = fileobject.version_generate(version_suffix)
if self.var_name:
context[self.var_name] = version
else:
return version.url
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'slide_number': 2, 'painting': <Painting: Carnival>, 'paintings_of_interest': [<Painting: Picture with an Archer>, <Painting: Yellow Cow>, <Painting: The Three Dancers>], 'orientation': 'portrait'}] |
self | <filebrowser.templatetags.fb_versions.VersionNode object at 0x33f94847550> |
site | <filebrowser.sites.FileBrowserSite object at 0x33f9678c8d0> |
source | None |
version_suffix | 'painting_click' |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/site-packages/filebrowser/base.py
in __init__
from filebrowser.sites import site as default_site
site = default_site
self.site = site
if platform.system() == 'Windows':
self.path = path.replace('\\', '/')
else:
self.path = path
self.head = os.path.dirname(path)…
self.filename = os.path.basename(path)
self.filename_lower = self.filename.lower()
self.filename_root, self.extension = os.path.splitext(self.filename)
self.mimetype = mimetypes.guess_type(self.filename)
def __str__(self):
Variable | Value |
---|---|
path | None |
self | Error in formatting: TypeError: object of type 'NoneType' has no len() |
site | <filebrowser.sites.FileBrowserSite object at 0x33f9678c8d0> |
/home/greatworksart/greatworksofwesternart.net/env/lib/python3.6/posixpath.py
in dirname
return p[i:]
# Return the head (dirname) part of a path, same as split(path)[0].
def dirname(p):
"""Returns the directory component of a pathname"""
p = os.fspath(p)…
sep = _get_sep(p)
i = p.rfind(sep) + 1
head = p[:i]
if head and head != sep*len(head):
head = head.rstrip(sep)
return head
Variable | Value |
---|---|
p | None |
AnonymousUser
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
DH_USER | 'greatworksart' |
GEM_HOME | '/home/greatworksart/.gems' |
HTTP_ACCEPT | '*/*' |
HTTP_HOST | 'www.worldsbestpaintings.net' |
HTTP_USER_AGENT | 'claudebot' |
PASSENGER_CONNECT_PASSWORD | 'EQacsnhVWjOWpOJ9' |
PATH_INFO | '/artistsandpaintings/painting/186/' |
QS_AllConn | '4' |
QS_ConnectionId | '171162980985086243148745' |
QS_SrvConn | '4' |
QUERY_STRING | '' |
REMOTE_ADDR | '54.163.200.109' |
REMOTE_PORT | '33510' |
REQUEST_METHOD | 'GET' |
REQUEST_URI | '/artistsandpaintings/painting/186/' |
SCRIPT_NAME | '' |
SCRIPT_URI | 'http://www.worldsbestpaintings.net/artistsandpaintings/painting/186/' |
SCRIPT_URL | '/artistsandpaintings/painting/186/' |
SERVER_NAME | 'www.worldsbestpaintings.net' |
SERVER_PORT | '80' |
SERVER_PROTOCOL | 'HTTP/1.1' |
SERVER_SOFTWARE | 'Apache/2.4.29 (Ubuntu) OpenSSL/1.1.1 mod_fcgid/2.3.9 Phusion_Passenger/5.0.30' |
UNIQUE_ID | 'ZgVl86WZla5LGsXyaP1YsgAAAJc' |
ds_id_41946217 | '' |
dsid | '41946217' |
passenger.hijack | None |
wsgi.errors | <_io.TextIOWrapper name='<stderr>' mode='w' encoding='ANSI_X3.4-1968'> |
wsgi.input | <_io.BufferedReader name=22> |
wsgi.multiprocess | True |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'http' |
wsgi.version | (1, 0) |
bestpaintings.settings.production
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ALLOWED_HOSTS | ['www.worldsbestpaintings.net', 'worldsbestpaintings.net', 'www.greatworksofwesternart.net', 'greatworksofwesternart.net', '127.0.0.1'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
BASE_DIR | '/home/greatworksart/greatworksofwesternart.net/bestpaintings/bestpaintings' |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
CSRF_COOKIE_AGE | 31449600 |
CSRF_COOKIE_DOMAIN | None |
CSRF_COOKIE_HTTPONLY | False |
CSRF_COOKIE_NAME | 'csrftoken' |
CSRF_COOKIE_PATH | '/' |
CSRF_COOKIE_SAMESITE | 'Lax' |
CSRF_COOKIE_SECURE | False |
CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
CSRF_HEADER_NAME | 'HTTP_X_CSRFTOKEN' |
CSRF_TRUSTED_ORIGINS | [] |
CSRF_USE_SESSIONS | False |
DATABASES | {'default': {'ENGINE': 'django.db.backends.mysql', 'OPTIONS': {'read_default_file': '/home/greatworksart/greatworksofwesternart.net/bestpaintings/bestpaintings/settings/greatworksofwesternart.cnf'}}} |
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_LANGUAGE | 1 |
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_ADMIN_VERSIONS | ['thumbnail', 'small', 'medium', 'big', 'banner', '940big', 'painting_click'] |
FILEBROWSER_VERSIONS | {'940big': {'height': '', 'opts': 'upscale', 'verbose_name': 'Big 940', 'width': 940}, 'banner': {'height': '201', 'opts': 'crop upscale', 'verbose_name': 'Banner (940px)', 'width': 940}, 'big': {'height': '', 'opts': '', 'verbose_name': 'Big (620px)', 'width': 940}, 'bookcover': {'height': '', 'opts': 'upscale', 'verbose_name': 'Book Cover', 'width': 185}, 'cropped': {'height': 60, 'opts': 'crop', 'verbose_name': 'Cropped (60x60px)', 'width': 60}, 'croppedthumbnail': {'height': 140, 'opts': 'crop', 'verbose_name': 'Cropped Thumbnail (140x140px)', 'width': 140}, 'fb_thumb': {'height': 60, 'opts': 'crop upscale', 'verbose_name': 'Admin Thumbnail', 'width': 60}, 'medium': {'height': '', 'opts': '', 'verbose_name': 'Medium (460px)', 'width': 460}, 'painting_card_image': {'height': '280', 'opts': 'crop', 'verbose_name': 'Card (320px by 280px)', 'width': 320}, 'painting_click': {'height': '180', 'opts': 'crop upscale', 'verbose_name': 'Painting Click', 'width': 144}, 'painting_click_landscape': {'height': 177, 'opts': '', 'verbose_name': 'Painting Click Landscape', 'width': ''}, 'small': {'height': '', 'opts': '', 'verbose_name': 'Small (300px)', 'width': 300}, 'thumbnail': {'height': '', 'opts': '', 'verbose_name': 'Thumbnail (140px)', 'width': 140}} |
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' |
HAYSTACK_CONNECTIONS | {'default': {'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', 'PATH': '/home/greatworksart/greatworksofwesternart.net/bestpaintings/bestpaintings/settings/whoosh_index'}} |
HAYSTACK_SIGNAL_PROCESSOR | 'haystack.signals.RealtimeSignalProcessor' |
IGNORABLE_404_URLS | [] |
INSTALLED_APPS | ['filebrowser', 'pages', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'artistsandpaintings', 'leftcontent', 'newsletter', 'siteediting', 'slides', 'website', 'contact', 'tinymce', 'haystack'] |
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'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('th', 'Thai'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('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 | '/home/greatworksart/greatworksofwesternart.net/bestpaintings/bestpaintings/../../public/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 |
PAGE_DEFAULT_LANGUAGE | 'en-gb' |
PAGE_DEFAULT_TEMPLATE | 'pages/index.html' |
PAGE_LANGUAGES | (('zh-cn', 'Chinese Simplified'), ('fr-ch', 'Swiss french'), ('en-gb', 'UK English')) |
PAGE_REAL_TIME_SEARCH | False |
PAGE_TEMPLATES | (('pages/index_home.html', 'homepage template'),) |
PAGE_TINYMCE | True |
PAGE_USE_SITE_ID | True |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT_DAYS | '********************' |
PREPEND_WWW | False |
ROOT_URLCONF | 'bestpaintings.urls' |
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_SAMESITE | 'Lax' |
SESSION_COOKIE_SECURE | False |
SESSION_ENGINE | 'django.contrib.sessions.backends.db' |
SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
SESSION_FILE_PATH | None |
SESSION_SAVE_EVERY_REQUEST | False |
SESSION_SERIALIZER | 'django.contrib.sessions.serializers.JSONSerializer' |
SETTINGS_MODULE | 'bestpaintings.settings.production' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
SITE_ID | 1 |
STATICFILES_DIRS | ['/home/greatworksart/greatworksofwesternart.net/bestpaintings/bestpaintings/staticfiles/'] |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | '/home/greatworksart/greatworksofwesternart.net/bestpaintings/bestpaintings/../..//public/static/' |
STATIC_URL | '/static/' |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/home/greatworksart/greatworksofwesternart.net/bestpaintings/bestpaintings/../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', 'pages.context_processors.media']}}] |
TEST_NON_SERIALIZED_APPS | [] |
TEST_RUNNER | 'django.test.runner.DiscoverRunner' |
THOUSAND_SEPARATOR | ',' |
TIME_FORMAT | 'P' |
TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
TIME_ZONE | 'UTC' |
TINYMCE_DEFAULT_CONFIG | {'plugins': 'link image table code hr', 'selector': 'textarea'} |
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 | 'bestpaintings.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.