[Errno 19] No such device: '/srv/webapps/congress/staticfiles/media/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47.jpg'
Request Method: | GET |
---|---|
Request URL: | https://congress.muctr.ru/2018/gallery/forum-stran-sng/ |
Django Version: | 2.2 |
Exception Type: | OSError |
Exception Value: | [Errno 19] No such device: '/srv/webapps/congress/staticfiles/media/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47.jpg' |
Exception Location: | /srv/webapps/.envs/congress/lib/python3.8/site-packages/django/core/files/storage.py in _open, line 224 |
Python Executable: | /srv/webapps/.envs/congress/bin/python |
Python Version: | 3.8.5 |
Python Path: | ['/srv/webapps/.envs/congress/bin', '/srv/webapps/congress/congress', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/srv/webapps/.envs/congress/lib/python3.8/site-packages', '/srv/webapps/.envs/congress/lib/python3.8/site-packages/odf', '/srv/webapps/.envs/congress/lib/python3.8/site-packages/odf', '/srv/webapps/.envs/congress/lib/python3.8/site-packages/odf', '/srv/webapps/.envs/congress/lib/python3.8/site-packages/odf', '/srv/webapps/.envs/congress/lib/python3.8/site-packages/odf', '/srv/webapps/.envs/congress/lib/python3.8/site-packages/odf', '/srv/webapps/.envs/congress/lib/python3.8/site-packages/odf'] |
Server time: | Чт, 28 Мар 2024 13:34:38 +0300 |
In template /srv/webapps/congress/congress/templates/base.html
, error at line 0
1 | {% load staticfiles %} |
---|---|
2 | <!DOCTYPE html> |
3 | <html lang="ru"> |
4 | <head> |
5 | <script async src="https://www.googletagmanager.com/gtag/js?id=UA-127192849-1"></script> |
6 | <script> |
7 | window.dataLayer = window.dataLayer || []; |
8 | |
9 | function gtag() { |
10 | dataLayer.push(arguments); |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/django/template/base.py
in _resolve_lookup
detail and shouldn't be called by external code. Use Variable.resolve()
instead.
"""
current = context
try: # catch-all for silent variable failures
for bit in self.lookups:
try: # dictionary lookup
current = current[bit]…
# 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):
Variable | Value |
---|---|
bit | 'url' |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
current | <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg> |
self | <Variable: 'photo.imageResize.url'> |
template_name | 'gallery.html' |
/srv/webapps/.envs/congress/lib/python3.8/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 | OSError(19, 'No such device') |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f387507d130>> |
request | <WSGIRequest: GET '/2018/gallery/forum-stran-sng/'> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/django/core/handlers/base.py
in _get_response
"HttpResponse object. It returned None instead."
% (middleware_method.__self__.__class__.__name__)
)
try:
response = response.render()
except Exception as e:
response = self.process_exception_by_middleware(e, request)…
return response
def process_exception_by_middleware(self, exception, request):
"""
Pass the exception to the exception middleware. If no middleware
Variable | Value |
---|---|
callback | <function GalleryPageView at 0x7f387387de50> |
callback_args | () |
callback_kwargs | {'congressYear': 2018, 'gallery': 'forum-stran-sng'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7f3873aabbe0>> |
request | <WSGIRequest: GET '/2018/gallery/forum-stran-sng/'> |
resolver | <URLResolver 'config.urls' (None:None) '^/'> |
resolver_match | ResolverMatch(func=photogallry.views.GalleryPageView, args=(), kwargs={'congressYear': 2018, 'gallery': 'forum-stran-sng'}, url_name=gallery, app_names=[], namespaces=[], route=<int:congressYear>/gallery/<slug:gallery>/) |
response | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f387507d130> |
wrapped_callback | <function GalleryPageView at 0x7f387387de50> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/django/core/handlers/base.py
in _get_response
raise ValueError(
"%s.process_template_response didn't return an "
"HttpResponse object. It returned None instead."
% (middleware_method.__self__.__class__.__name__)
)
try:
response = response.render()…
except Exception as e:
response = self.process_exception_by_middleware(e, request)
return response
def process_exception_by_middleware(self, exception, request):
Variable | Value |
---|---|
callback | <function GalleryPageView at 0x7f387387de50> |
callback_args | () |
callback_kwargs | {'congressYear': 2018, 'gallery': 'forum-stran-sng'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7f3873aabbe0>> |
request | <WSGIRequest: GET '/2018/gallery/forum-stran-sng/'> |
resolver | <URLResolver 'config.urls' (None:None) '^/'> |
resolver_match | ResolverMatch(func=photogallry.views.GalleryPageView, args=(), kwargs={'congressYear': 2018, 'gallery': 'forum-stran-sng'}, url_name=gallery, app_names=[], namespaces=[], route=<int:congressYear>/gallery/<slug:gallery>/) |
response | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f387507d130> |
wrapped_callback | <function GalleryPageView at 0x7f387387de50> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/django/template/response.py
in render
If the content has already been rendered, this is a no-op.
Return the baked response instance.
"""
retval = self
if not self._is_rendered:
self.content = self.rendered_content…
for post_callback in self._post_render_callbacks:
newretval = post_callback(retval)
if newretval is not None:
retval = newretval
return retval
Variable | Value |
---|---|
retval | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
self | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/django/template/response.py
in rendered_content
This *does not* set the final content of the response. To set the
response content, you must either call render(), or set the
content explicitly using the value of this property.
"""
template = self.resolve_template(self.template_name)
context = self.resolve_context(self.context_data)
content = template.render(context, self._request)…
return content
def add_post_render_callback(self, callback):
"""Add a new post-rendering callback.
If the response has already been rendered,
Variable | Value |
---|---|
context | {'congressYear': '2018', 'congressYears': <QuerySet [<CongressYear: 2018>]>, 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>} |
self | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
template | <django.template.backends.django.Template object at 0x7f387345bd30> |
/srv/webapps/.envs/congress/lib/python3.8/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}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
request | <WSGIRequest: GET '/2018/gallery/forum-stran-sng/'> |
self | <django.template.backends.django.Template object at 0x7f387345bd30> |
/srv/webapps/.envs/congress/lib/python3.8/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}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
self | <django.template.base.Template object at 0x7f3873454fa0> |
/srv/webapps/.envs/congress/lib/python3.8/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}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
self | <django.template.base.Template object at 0x7f3873454fa0> |
/srv/webapps/.envs/congress/lib/python3.8/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}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
node | <ExtendsNode: extends "base.html"> |
self | [<ExtendsNode: extends "base.html">] |
/srv/webapps/.envs/congress/lib/python3.8/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}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
self | <ExtendsNode: extends "base.html"> |
/srv/webapps/.envs/congress/lib/python3.8/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 0x7f38733c15e0> |
blocks | {'carousel': <Block Node: carousel. Contents: []>, 'content': <Block Node: content. Contents: [<TextNode: ' '>]>, 'menu': <Block Node: menu. Contents: []>, 'onload': <Block Node: onload. Contents: []>, 'title': <Block Node: title. Contents: []>} |
compiled_parent | <django.template.base.Template object at 0x7f3873454490> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
node | <django.template.defaulttags.LoadNode object at 0x7f3873741ee0> |
self | <ExtendsNode: extends "base.html"> |
/srv/webapps/.envs/congress/lib/python3.8/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}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
self | <django.template.base.Template object at 0x7f3873454490> |
/srv/webapps/.envs/congress/lib/python3.8/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</header>\n<main>\n ' |
bits | ['', '\n' '<!DOCTYPE html>\n' '<html lang="ru">\n' '<head>\n' ' <script async ' 'src="https://www.googletagmanager.com/gtag/js?id=UA-127192849-1"></script>\n' ' <script>\n' ' window.dataLayer = window.dataLayer || [];\n' '\n' ' function gtag() {\n' ' dataLayer.push(arguments);\n' ' }\n' '\n' " gtag('js', new Date());\n" " gtag('config', 'UA-127192849-1');\n" ' </script>\n' ' <meta charset="utf-8">\n' ' <meta name="viewport" content="width=device-width, initial-scale=1, ' 'shrink-to-fit=no">\n' ' <meta http-equiv="x-ua-compatible" content="ie=edge">\n' ' <meta name="theme-color" content="#929FBA">\n' ' <title>', '\nФорум стран СНГ\n', '</title>\n <link rel="icon" href="', '/static/img/logo.png', '">\n' ' <!-- Font Awesome -->\n' ' <link rel="stylesheet" ' 'href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">\n' ' <!-- Bootstrap core CSS -->\n' ' <link href="', '/static/css/bootstrap.min.css', '" rel="stylesheet">\n' ' <!-- Material Design Bootstrap -->\n' ' <link href="', '/static/css/mdb.min.css', '" rel="stylesheet">\n' ' <!-- Your custom styles (optional) -->\n' ' <link href="', '/static/css/style.css', '" rel="stylesheet">\n' ' <link ' 'href="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.css" ' 'rel="stylesheet">\n' ' <link type="text/css" rel="stylesheet"\n' ' ' 'href="https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.6.11/css/lightgallery.min.css">\n' ' <script type="text/javascript" src="', '/static/js/jquery-3.3.1.min.js', '"></script>\n' ' <script ' 'src="https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.6.11/js/lightgallery-all.min.js"></script>\n' ' <script ' 'src="https://cdn.jsdelivr.net/picturefill/2.3.1/picturefill.min.js"></script>\n' '</head>\n' '<body id="section_home" onload="', '', '">\n' '<header>\n' ' <nav class="navbar fixed-top navbar-expand-lg navbar-dark ' 'scrolling-navbar">\n' ' <div class="container">\n' ' <a class="navbar-brand" href="/">\n' ' <img src="', '/static/img/logo.png', '">\n' ' </a>\n' ' <button class="navbar-toggler" type="button" ' 'data-toggle="collapse" data-target="#navbarSupportedContent"\n' ' aria-controls="navbarSupportedContent"\n' ' aria-expanded="false" aria-label="Toggle navigation">\n' ' <span class="navbar-toggler-icon"></span>\n' ' </button>\n' ' <div class="collapse navbar-collapse" ' 'id="navbarSupportedContent">\n' ' <ul class="navbar-nav mr-auto">\n' ' ', '\n' '<li class="nav-item">\n' ' <a class="nav-link" href="/">\n' ' Главная\n' ' </a>\n' '</li>\n', '\n' ' </ul>\n' ' <ul class="navbar-nav mr-right">\n' ' <li class="nav-item dropdown">\n' ' <a class="nav-link dropdown-toggle" ' 'id="navbarDropdownMenuLink" data-toggle="dropdown"\n' ' aria-haspopup="true" aria-expanded="false">Год ' 'проведения: ', '2018', '</a>\n' ' <div class="dropdown-menu dropdown-primary" ' 'aria-labelledby="navbarDropdownMenuLink">\n' ' ', '\n' ' <a class="dropdown-item" ' 'href="/2018/">2018</a>\n' ' ', '\n' ' </div>\n' ' </li>\n' ' </ul>\n' ' </div>\n' ' </div>\n' ' </nav>\n' ' ', '', '\n</header>\n<main>\n '] |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
node | <Block Node: content. Contents: [<TextNode: ' '>]> |
self | [<django.template.defaulttags.LoadNode object at 0x7f3873741ee0>, <TextNode: '\n<!DOCTYPE html>\n<html la'>, <Block Node: title. Contents: []>, <TextNode: '</title>\n <link rel="i'>, <django.templatetags.static.StaticNode object at 0x7f38734940a0>, <TextNode: '">\n <!-- Font Awesome '>, <django.templatetags.static.StaticNode object at 0x7f38734941c0>, <TextNode: '" rel="stylesheet">\n <'>, <django.templatetags.static.StaticNode object at 0x7f38734942e0>, <TextNode: '" rel="stylesheet">\n <'>, <django.templatetags.static.StaticNode object at 0x7f3873454c10>, <TextNode: '" rel="stylesheet">\n <'>, <django.templatetags.static.StaticNode object at 0x7f38733c1340>, <TextNode: '"></script>\n <script s'>, <Block Node: onload. Contents: []>, <TextNode: '">\n<header>\n <nav clas'>, <django.templatetags.static.StaticNode object at 0x7f38733c1f40>, <TextNode: '">\n </a>\n '>, <Block Node: menu. Contents: []>, <TextNode: '\n </ul>\n '>, <Variable Node: congressYear>, <TextNode: '</a>\n '>, <ForNode: for congressYear in congressYears, tail_len: 5>, <TextNode: '\n '>, <Block Node: carousel. Contents: []>, <TextNode: '\n</header>\n<main>\n '>, <Block Node: content. Contents: [<TextNode: ' '>]>, <TextNode: '\n</main>\n<footer class="p'>, <Variable Node: congressYear>, <TextNode: '\n </div>\n</footer>\n<sc'>, <django.templatetags.static.StaticNode object at 0x7f38734bdb50>, <TextNode: '"></script>\n<script type='>, <django.templatetags.static.StaticNode object at 0x7f38734bdc10>, <TextNode: '"></script>\n<script type='>, <django.templatetags.static.StaticNode object at 0x7f38734bdaf0>, <TextNode: '"></script>\n<script src=\''>, <django.templatetags.static.StaticNode object at 0x7f38734bdeb0>, <TextNode: '?11"></script>\n<script ty'>] |
/srv/webapps/.envs/congress/lib/python3.8/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}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
self | <Block Node: content. Contents: [<TextNode: ' '>]> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/django/template/loader_tags.py
in render
push = block = block_context.pop(self.name)
if block is None:
block = self
# Create new block so we can store context without thread-safety issues.
block = type(self)(block.name, block.nodelist)
block.context = context
context['block'] = block
result = block.nodelist.render(context)…
if push is not None:
block_context.push(self.name, push)
return result
def super(self):
if not hasattr(self, 'context'):
Variable | Value |
---|---|
block | <Block Node: content. Contents: [<TextNode: '\n<style>\n .navbar:not('>, <Variable Node: gallery.title>, <TextNode: '</h2>\n <div class='>, <Variable Node: gallery.url>, <TextNode: '"\n class="'>, <ForNode: for photo in gallery.photoDetail.all, tail_len: 7>, <TextNode: '\n </ul>\n '>, <Variable Node: gallery.url>, <TextNode: '").lightGallery({\n '>]> |
block_context | <django.template.loader_tags.BlockContext object at 0x7f38733c15e0> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
push | <Block Node: content. Contents: [<TextNode: '\n<style>\n .navbar:not('>, <Variable Node: gallery.title>, <TextNode: '</h2>\n <div class='>, <Variable Node: gallery.url>, <TextNode: '"\n class="'>, <ForNode: for photo in gallery.photoDetail.all, tail_len: 7>, <TextNode: '\n </ul>\n '>, <Variable Node: gallery.url>, <TextNode: '").lightGallery({\n '>]> |
self | <Block Node: content. Contents: [<TextNode: ' '>]> |
/srv/webapps/.envs/congress/lib/python3.8/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' ' class="list-unstyled row wow fadeIn ' 'justify-content-md-center">\n' ' ') |
bits | ['\n' '<style>\n' ' .navbar:not(.top-nav-collapse) {\n' ' background: #929FBA !important;\n' ' }\n' '</style>\n' '<div class="container pt-6">\n' ' <section>\n' ' <h2 class="my-3 h3 text-center">', 'Форум стран СНГ', '</h2>\n <div class="demo-gallery">\n <ul id="lightgallery-', 'forum-stran-sng', '"\n' ' class="list-unstyled row wow fadeIn ' 'justify-content-md-center">\n' ' '] |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
node | <ForNode: for photo in gallery.photoDetail.all, tail_len: 7> |
self | [<TextNode: '\n<style>\n .navbar:not('>, <Variable Node: gallery.title>, <TextNode: '</h2>\n <div class='>, <Variable Node: gallery.url>, <TextNode: '"\n class="'>, <ForNode: for photo in gallery.photoDetail.all, tail_len: 7>, <TextNode: '\n </ul>\n '>, <Variable Node: gallery.url>, <TextNode: '").lightGallery({\n '>] |
/srv/webapps/.envs/congress/lib/python3.8/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}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
self | <ForNode: for photo in gallery.photoDetail.all, tail_len: 7> |
/srv/webapps/.envs/congress/lib/python3.8/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:
# Pop the loop variables pushed on to the context to avoid
# the context ending up in an inconsistent state when other
# tags (e.g., include and with) push data to context.
context.pop()
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
i | 0 |
item | <Photo: ph-47.jpg> |
len_values | 23 |
loop_dict | {'counter': 1, 'counter0': 0, 'first': True, 'last': False, 'parentloop': {}, 'revcounter': 23, 'revcounter0': 22} |
node | <Variable Node: photo.imageResize.url> |
nodelist | ['\n <li class="col-lg-3 col-6" data-src="'] |
num_loopvars | 1 |
parentloop | {} |
pop_context | False |
self | <ForNode: for photo in gallery.photoDetail.all, tail_len: 7> |
unpack | False |
values | <QuerySet [<Photo: ph-47.jpg>, <Photo: ph-46.jpg>, <Photo: ph-45.jpg>, <Photo: ph-44.jpg>, <Photo: ph-43.jpg>, <Photo: ph-42.jpg>, <Photo: ph-41.jpg>, <Photo: ph-40.jpg>, <Photo: ph-39.jpg>, <Photo: ph-38.jpg>, <Photo: ph-37.jpg>, <Photo: ph-36.jpg>, <Photo: ph-35.jpg>, <Photo: ph-34.jpg>, <Photo: ph-33.jpg>, <Photo: ph-32.jpg>, <Photo: ph-31.jpg>, <Photo: ph-30.jpg>, <Photo: ph-29.jpg>, <Photo: ph-28.jpg>, '...(remaining elements truncated)...']> |
/srv/webapps/.envs/congress/lib/python3.8/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}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
self | <Variable Node: photo.imageResize.url> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/django/template/base.py
in render
self.filter_expression = filter_expression
def __repr__(self):
return "<Variable Node: %s>" % self.filter_expression
def render(self, context):
try:
output = self.filter_expression.resolve(context)…
except UnicodeDecodeError:
# Unicode conversion can fail sometimes for reasons out of our
# control (e.g. exception rendering). In that case, we fail
# quietly.
return ''
return render_value_in_context(output, context)
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
self | <Variable Node: photo.imageResize.url> |
/srv/webapps/.envs/congress/lib/python3.8/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 | [{'True': True, 'False': False, 'None': None}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
ignore_failures | False |
self | <django.template.base.FilterExpression object at 0x7f387353a7c0> |
/srv/webapps/.envs/congress/lib/python3.8/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 | [{'True': True, 'False': False, 'None': None}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
self | <Variable: 'photo.imageResize.url'> |
/srv/webapps/.envs/congress/lib/python3.8/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):
# Reraise if the exception was raised by a @property
if not isinstance(current, BaseContext) and bit in dir(current):
raise
try: # list-index lookup
current = current[int(bit)]
Variable | Value |
---|---|
bit | 'url' |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'congressYear': '2018', 'gallery': <Gallery: Форум стран СНГ>, 'view': <photogallry.views.GalleryPageView object at 0x7f387345b940>, 'congressYears': <QuerySet [<CongressYear: 2018>]>}] |
current | <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg> |
self | <Variable: 'photo.imageResize.url'> |
template_name | 'gallery.html' |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/imagekit/cachefiles/__init__.py
in url
@property
def path(self):
return self._storage_attr('path')
@property
def url(self):
return self._storage_attr('url')…
def generate(self, force=False):
"""
Generate the file. If ``force`` is ``True``, the file will be generated
whether the file already exists or not.
Variable | Value |
---|---|
self | <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/imagekit/cachefiles/__init__.py
in _storage_attr
# require the file to exist; they do not need its contents to work. This
# distinction gives the user the flexibility to create a cache file
# strategy that assumes the existence of a file, but can still make the file
# available when its contents are required.
def _storage_attr(self, attr):
if getattr(self, '_file', None) is None:
existence_required.send(sender=self, file=self)…
fn = getattr(self.storage, attr)
return fn(self.name)
@property
def path(self):
return self._storage_attr('path')
Variable | Value |
---|---|
attr | 'url' |
self | <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/django/dispatch/dispatcher.py
in send
Named arguments which will be passed to receivers.
Return a list of tuple pairs [(receiver, response), ... ].
"""
if not self.receivers or self.sender_receivers_cache.get(sender) is NO_RECEIVERS:
return []
return […
(receiver, receiver(signal=self, sender=sender, **named))
for receiver in self._live_receivers(sender)
]
def send_robust(self, sender, **named):
"""
Variable | Value |
---|---|
named | {'file': <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg>} |
self | <django.dispatch.dispatcher.Signal object at 0x7f3876f0d430> |
sender | <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/django/dispatch/dispatcher.py
in <listcomp>
Return a list of tuple pairs [(receiver, response), ... ].
"""
if not self.receivers or self.sender_receivers_cache.get(sender) is NO_RECEIVERS:
return []
return [
(receiver, receiver(signal=self, sender=sender, **named))…
for receiver in self._live_receivers(sender)
]
def send_robust(self, sender, **named):
"""
Send signal from sender to all connected receivers catching errors.
Variable | Value |
---|---|
.0 | <list_iterator object at 0x7f3873494fa0> |
named | {'file': <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg>} |
receiver | <bound method GeneratorRegistry.existence_required_receiver of <imagekit.registry.GeneratorRegistry object at 0x7f3876f0d0d0>> |
self | <django.dispatch.dispatcher.Signal object at 0x7f3876f0d430> |
sender | <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/imagekit/registry.py
in existence_required_receiver
autodiscover()
return self._generators.keys()
def content_required_receiver(self, sender, file, **kwargs):
self._receive(file, 'on_content_required')
def existence_required_receiver(self, sender, file, **kwargs):
self._receive(file, 'on_existence_required')…
def _receive(self, file, callback):
generator = file.generator
# FIXME: I guess this means you can't register functions?
if generator.__class__ in self._generators.values():
Variable | Value |
---|---|
file | <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg> |
kwargs | {'signal': <django.dispatch.dispatcher.Signal object at 0x7f3876f0d430>} |
self | <imagekit.registry.GeneratorRegistry object at 0x7f3876f0d0d0> |
sender | <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/imagekit/registry.py
in _receive
def _receive(self, file, callback):
generator = file.generator
# FIXME: I guess this means you can't register functions?
if generator.__class__ in self._generators.values():
# Only invoke the strategy method for registered generators.
call_strategy_method(file, callback)…
class SourceGroupRegistry(object):
"""
The source group registry is responsible for listening to source_* signals
on source groups, and relaying them to the image generated file strategies
Variable | Value |
---|---|
callback | 'on_existence_required' |
file | <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg> |
generator | <imagekit.specs.DynamicSpec object at 0x7f387343b3a0> |
self | <imagekit.registry.GeneratorRegistry object at 0x7f3876f0d0d0> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/imagekit/utils.py
in call_strategy_method
return f
def call_strategy_method(file, method_name):
strategy = getattr(file, 'cachefile_strategy', None)
fn = getattr(strategy, method_name, None)
if fn is not None:
fn(file)…
def get_cache():
try:
from django.core.cache import caches
except ImportError:
Variable | Value |
---|---|
file | <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg> |
fn | <bound method JustInTime.on_existence_required of <imagekit.cachefiles.strategies.JustInTime object at 0x7f38738d0fa0>> |
method_name | 'on_existence_required' |
strategy | <imagekit.cachefiles.strategies.JustInTime object at 0x7f38738d0fa0> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/imagekit/cachefiles/strategies.py
in on_existence_required
class JustInTime(object):
"""
A strategy that ensures the file exists right before it's needed.
"""
def on_existence_required(self, file):
file.generate()…
def on_content_required(self, file):
file.generate()
class Optimistic(object):
Variable | Value |
---|---|
file | <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg> |
self | <imagekit.cachefiles.strategies.JustInTime object at 0x7f38738d0fa0> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/imagekit/cachefiles/__init__.py
in generate
def generate(self, force=False):
"""
Generate the file. If ``force`` is ``True``, the file will be generated
whether the file already exists or not.
"""
if force or getattr(self, '_file', None) is None:
self.cachefile_backend.generate(self, force)…
def _generate(self):
# Generate the file
content = generate(self.generator)
actual_name = self.storage.save(self.name, content)
Variable | Value |
---|---|
force | False |
self | <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/imagekit/cachefiles/backends.py
in generate
"""
The most basic file backend. The storage is consulted to see if the file
exists. Files are generated synchronously.
"""
def generate(self, file, force=False):
self.generate_now(file, force=force)…
def _exists(self, file):
return bool(getattr(file, '_file', None)
or file.storage.exists(file.name))
Variable | Value |
---|---|
file | <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg> |
force | False |
self | <imagekit.cachefiles.backends.Simple object at 0x7f38738d0e20> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/imagekit/cachefiles/backends.py
in generate_now
def generate(self, file, force=False):
raise NotImplementedError
def generate_now(self, file, force=False):
if force or self.get_state(file) not in (CacheFileState.GENERATING, CacheFileState.EXISTS):
self.set_state(file, CacheFileState.GENERATING)
file._generate()…
self.set_state(file, CacheFileState.EXISTS)
file.close()
class Simple(CachedFileBackend):
"""
Variable | Value |
---|---|
file | <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg> |
force | False |
self | <imagekit.cachefiles.backends.Simple object at 0x7f38738d0e20> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/imagekit/cachefiles/__init__.py
in _generate
"""
if force or getattr(self, '_file', None) is None:
self.cachefile_backend.generate(self, force)
def _generate(self):
# Generate the file
content = generate(self.generator)…
actual_name = self.storage.save(self.name, content)
# We're going to reuse the generated file, so we need to reset the pointer.
content.seek(0)
Variable | Value |
---|---|
self | <ImageCacheFile: CACHE/images/img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47/860d1cb551de88892484d31cf7af3575.jpg> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/imagekit/utils.py
in generate
def generate(generator):
"""
Calls the ``generate()`` method of a generator instance, and then wraps the
result in a Django File object so Django knows how to save it.
"""
content = generator.generate()…
f = File(content)
# The size of the File must be known or Django will try to open a file
# without a name and raise an Exception.
f.size = len(content.read())
# After getting the size reset the file pointer for future reads.
content.seek(0)
Variable | Value |
---|---|
generator | <imagekit.specs.DynamicSpec object at 0x7f387343b3a0> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/imagekit/specs/__init__.py
in generate
# TODO: Move into a generator base class
# TODO: Factor out a generate_image function so you can create a generator and only override the PIL.Image creating part. (The tricky part is how to deal with original_format since generator base class won't have one.)
closed = self.source.closed
if closed:
# Django file object should know how to reopen itself if it was closed
# https://code.djangoproject.com/ticket/13750
self.source.open()…
try:
img = open_image(self.source)
new_image = process_image(img,
processors=self.processors,
format=self.format,
Variable | Value |
---|---|
closed | True |
self | <imagekit.specs.DynamicSpec object at 0x7f387343b3a0> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/django/db/models/fields/files.py
in open
if not self._committed:
return self.file.size
return self.storage.size(self.name)
def open(self, mode='rb'):
self._require_file()
if getattr(self, '_file', None) is None:
self.file = self.storage.open(self.name, mode)…
else:
self.file.open(mode)
return self
# open() doesn't alter the file's contents, but it does reset the pointer
open.alters_data = True
Variable | Value |
---|---|
mode | 'rb' |
self | <ImageFieldFile: img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47.jpg> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/django/core/files/storage.py
in open
"""
# The following methods represent a public interface to private methods.
# These shouldn't be overridden by subclasses unless absolutely necessary.
def open(self, name, mode='rb'):
"""Retrieve the specified file from storage."""
return self._open(name, mode)…
def save(self, name, content, max_length=None):
"""
Save new content to the file specified by name. The content should be
a proper File object or any Python file-like object, ready to be read
from the beginning.
Variable | Value |
---|---|
mode | 'rb' |
name | 'img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47.jpg' |
self | <django.core.files.storage.FileSystemStorage object at 0x7f38738dc700> |
/srv/webapps/.envs/congress/lib/python3.8/site-packages/django/core/files/storage.py
in _open
return self._value_or_setting(self._file_permissions_mode, settings.FILE_UPLOAD_PERMISSIONS)
@cached_property
def directory_permissions_mode(self):
return self._value_or_setting(self._directory_permissions_mode, settings.FILE_UPLOAD_DIRECTORY_PERMISSIONS)
def _open(self, name, mode='rb'):
return File(open(self.path(name), mode))…
def _save(self, name, content):
full_path = self.path(name)
# Create any intermediate directories that do not exist.
directory = os.path.dirname(full_path)
Variable | Value |
---|---|
mode | 'rb' |
name | 'img/photo/e28eb862-9e07-419e-b9d7-5806dbece647/ph-47.jpg' |
self | <django.core.files.storage.FileSystemStorage object at 0x7f38738dc700> |
AnonymousUser
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
HTTP_ACCEPT | '*/*' |
HTTP_ACCEPT_ENCODING | 'gzip, br' |
HTTP_CDN_LOOP | 'cloudflare' |
HTTP_CF_CONNECTING_IP | '18.207.240.205' |
HTTP_CF_IPCOUNTRY | 'US' |
HTTP_CF_RAY | '86b6f80e183257e8-IAD' |
HTTP_CF_VISITOR | '{"scheme":"https"}' |
HTTP_CONNECTION | 'close' |
HTTP_HOST | 'congress.muctr.ru' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_X_FORWARDED_FOR | '18.207.240.205, 172.70.135.116, 10.11.12.13, 10.16.11.12' |
HTTP_X_FORWARDED_PROTO | 'https' |
HTTP_X_FRAME_OPTIONS | 'SAMEORIGIN' |
HTTP_X_REAL_IP | '10.16.11.12' |
PATH_INFO | '/2018/gallery/forum-stran-sng/' |
QUERY_STRING | '' |
RAW_URI | '/2018/gallery/forum-stran-sng/' |
REMOTE_ADDR | '' |
REQUEST_METHOD | 'GET' |
SCRIPT_NAME | '' |
SERVER_NAME | 'congress.muctr.ru' |
SERVER_PORT | '443' |
SERVER_PROTOCOL | 'HTTP/1.1' |
SERVER_SOFTWARE | 'gunicorn/20.0.4' |
gunicorn.socket | <socket.socket fd=3, family=AddressFamily.AF_UNIX, type=SocketKind.SOCK_STREAM, proto=0, laddr=/srv/webapps/.envs/congress/run/gunicorn.sock> |
wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f387345bfd0> |
wsgi.file_wrapper | '' |
wsgi.input | <gunicorn.http.body.Body object at 0x7f387345b4c0> |
wsgi.input_terminated | True |
wsgi.multiprocess | True |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'https' |
wsgi.version | (1, 0) |
config.settings.production
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ALLOWED_HOSTS | ['congress.muctr.ru'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
BASE_DIR | '/srv/webapps/congress/congress' |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
CKEDITOR_CONFIGS | {'default': {'allowedContent': True, 'contentsCss': ['/static/css/style.css', '/static/css/mdb.css', '/static/css/bootstrap.css', 'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css'], 'fillEmptyBlocks': True, 'height': 500, 'toolbar': 'full', 'width': 1200}} |
CKEDITOR_UPLOAD_PATH | '' |
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 | True |
CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
CSRF_HEADER_NAME | 'HTTP_X_CSRFTOKEN' |
CSRF_TRUSTED_ORIGINS | [] |
CSRF_USE_SESSIONS | False |
DATABASES | {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.mysql', 'HOST': '192.168.7.204', 'NAME': 'congress', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'congress'}} |
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'] |
DB_HOST | '192.168.7.204' |
DB_NAME | 'congress' |
DB_PASS | '********************' |
DB_USER | 'congress' |
DEBUG | True |
DEBUG_PROPAGATE_EXCEPTIONS | False |
DECIMAL_SEPARATOR | '.' |
DEFAULT_CHARSET | 'utf-8' |
DEFAULT_CONTENT_TYPE | 'text/html' |
DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
DEFAULT_FROM_EMAIL | 'webmaster@localhost' |
DEFAULT_INDEX_TABLESPACE | '' |
DEFAULT_TABLESPACE | '' |
DISALLOWED_USER_AGENTS | [] |
DOMAIN | 'congress.muctr.ru' |
EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
EMAIL_HOST | 'localhost' |
EMAIL_HOST_PASSWORD | '********************' |
EMAIL_HOST_USER | '' |
EMAIL_PORT | 25 |
EMAIL_SSL_CERTFILE | None |
EMAIL_SSL_KEYFILE | '********************' |
EMAIL_SUBJECT_PREFIX | '[Django] ' |
EMAIL_TIMEOUT | None |
EMAIL_USE_LOCALTIME | False |
EMAIL_USE_SSL | False |
EMAIL_USE_TLS | False |
FILE_CHARSET | 'utf-8' |
FILE_UPLOAD_DIRECTORY_PERMISSIONS | None |
FILE_UPLOAD_HANDLERS | ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler'] |
FILE_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
FILE_UPLOAD_PERMISSIONS | 420 |
FILE_UPLOAD_TEMP_DIR | None |
FIRST_DAY_OF_WEEK | 0 |
FIXTURE_DIRS | [] |
FORCE_SCRIPT_NAME | None |
FORMAT_MODULE_PATH | None |
FORM_RENDERER | 'django.forms.renderers.DjangoTemplates' |
IGNORABLE_404_URLS | [] |
IMAGEKIT_CACHEFILE_DIR | 'CACHE/images' |
IMAGEKIT_CACHEFILE_NAMER | 'imagekit.cachefiles.namers.hash' |
IMAGEKIT_CACHE_BACKEND | 'default' |
IMAGEKIT_CACHE_PREFIX | 'imagekit:' |
IMAGEKIT_CACHE_TIMEOUT | 300 |
IMAGEKIT_DEFAULT_CACHEFILE_BACKEND | 'imagekit.cachefiles.backends.Simple' |
IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY | 'imagekit.cachefiles.strategies.JustInTime' |
IMAGEKIT_DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
IMAGEKIT_SPEC_CACHEFILE_NAMER | 'imagekit.cachefiles.namers.source_name_as_path' |
IMAGEKIT_USE_MEMCACHED_SAFE_CACHE_KEY | '********************' |
INSTALLED_APPS | ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'import_export', 'imagekit', 'adminsortable2', 'ckeditor', 'ckeditor_uploader', 'rangefilter', 'core', 'registration', 'events', 'photogallry'] |
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 | 'ru-Ru' |
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 | '/srv/webapps/congress/staticfiles/media' |
MEDIA_URL | '/media/' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
MIDDLEWARE | ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] |
MIGRATION_MODULES | {} |
MONTH_DAY_FORMAT | 'F j' |
NUMBER_GROUPING | 0 |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT_DAYS | '********************' |
PREPEND_WWW | False |
ROOT_URLCONF | 'config.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 | ('HTTP_X_FORWARDED_PROTO', 'https') |
SECURE_REDIRECT_EXEMPT | [] |
SECURE_SSL_HOST | None |
SECURE_SSL_REDIRECT | True |
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 | True |
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 | 'config.settings.production' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
STATICFILES_DIRS | ['/srv/webapps/congress/congress/static'] |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | '/srv/webapps/congress/staticfiles/static' |
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 | 'django.test.runner.DiscoverRunner' |
THOUSAND_SEPARATOR | ',' |
TIME_FORMAT | 'P' |
TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
TIME_ZONE | 'Europe/Moscow' |
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 | 'config.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.