'NoneType' object has no attribute 'get_image'
Request Method: | GET |
---|---|
Request URL: | https://www.intjo.pl/tr2/?page=13 |
Django Version: | 4.0.2 |
Exception Type: | AttributeError |
Exception Value: | 'NoneType' object has no attribute 'get_image' |
Exception Location: | ./crm/training_module.py, line 128, in get_image |
Python Executable: | /usr/bin/uwsgi-core |
Python Version: | 3.9.2 |
Python Path: | ['.', '', '/usr/lib/python39.zip', '/usr/lib/python3.9', '/usr/lib/python3.9/lib-dynload', '/usr/local/lib/python3.9/dist-packages', '/usr/lib/python3/dist-packages'] |
Server time: | Thu, 28 Mar 2024 18:18:57 +0100 |
In template <unknown source>
, error at line 32
22 | </style> |
---|---|
23 | {% if objects %} |
24 | {% if text %} |
25 | <h2 class="par-subtitle">{{ text }}</h2> |
26 | {% endif %} |
27 | <div class="par-trainings row"> |
28 | {% for training in objects %} |
29 | <div> |
30 | <div class="card"> |
31 | {% if training.image or 1 %} |
32 | {% generateimage 'main:resize' source=training.get_image height=512 as img %} |
33 | <img src="{{ img.url }}" class="card-img-top" alt="..."> |
34 | {% endif %} |
35 | <div class="card-body"> |
36 | <h5 class="card-title">{{ training }}</h5> |
37 | <a href="{{ training.get_absolute_url }}" class="btn btn-primary">Więcej informacji</a> |
38 | </div> |
39 | </div> |
40 | </div> |
41 | {% endfor %} |
42 | </div> |
/usr/local/lib/python3.9/dist-packages/django/core/handlers/exception.py
, line 47, in inner
response = await sync_to_async(response_for_exception, thread_sensitive=False)(request, exc)
return response
return inner
else:
@wraps(get_response)
def inner(request):
try:
response = get_response(request)…
except Exception as exc:
response = response_for_exception(request, exc)
return response
return inner
Variable | Value |
---|---|
exc | AttributeError("'NoneType' object has no attribute 'get_image'") |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f3bffe0ff40>> |
request | <WSGIRequest: GET '/tr2/?page=13'> |
/usr/local/lib/python3.9/dist-packages/django/core/handlers/base.py
, line 204, in _get_response
response,
middleware_method,
name='%s.process_template_response' % (
middleware_method.__self__.__class__.__name__,
)
)
try:
response = response.render()…
except Exception as e:
response = self.process_exception_by_middleware(e, request)
if response is None:
raise
return response
Variable | Value |
---|---|
callback | <function View.as_view.<locals>.view at 0x7f3bffb3dd30> |
callback_args | () |
callback_kwargs | {'prefix': 'tr2'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>> |
request | <WSGIRequest: GET '/tr2/?page=13'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f3bffe0ff40> |
wrapped_callback | <function View.as_view.<locals>.view at 0x7f3bffb3dd30> |
/usr/local/lib/python3.9/dist-packages/django/template/response.py
, line 105, 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"> |
/usr/local/lib/python3.9/dist-packages/django/template/response.py
, line 83, in rendered_content
This *does not* set the final content of the response. To set the
response content, you must either call render(), or set the
content explicitly using the value of this property.
"""
template = self.resolve_template(self.template_name)
context = self.resolve_context(self.context_data)
return template.render(context, self._request)…
def add_post_render_callback(self, callback):
"""Add a new post-rendering callback.
If the response has already been rendered,
invoke the callback immediately.
Variable | Value |
---|---|
context | {'active_filters': [], 'branch_act': None, 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'filter_qs': '', 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'objects': <Page 13 of 13>, 'page': <Page: Training List Page>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'path': [], 'prefix': 'tr2', 'setup': <Setup: Setup object (1)>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>} |
self | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
template | <django.template.backends.django.Template object at 0x7f3bff81ed90> |
/usr/local/lib/python3.9/dist-packages/django/template/backends/django.py
, line 61, 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}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
request | <WSGIRequest: GET '/tr2/?page=13'> |
self | <django.template.backends.django.Template object at 0x7f3bff81ed90> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 176, 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}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
self | <Template template_string="{% extends 'base.htm..."> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 168, in _render
def __repr__(self):
return '<%s template_string="%s...">' % (
self.__class__.__qualname__,
self.source[:20].replace('\n', ''),
)
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}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
self | <Template template_string="{% extends 'base.htm..."> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 977, in render
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString(''.join([…
node.render_annotated(context) for node in self
]))
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
self | [<ExtendsNode: extends 'base.html'>] |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 978, in <listcomp>
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString(''.join([
node.render_annotated(context) for node in self…
]))
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
Variable | Value |
---|---|
.0 | <list_iterator object at 0x7f3bff2eb1c0> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
node | <ExtendsNode: extends 'base.html'> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 938, 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:
# Store the actual node that caused the exception.
if not hasattr(e, '_culprit_node'):
e._culprit_node = self
if (
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
self | <ExtendsNode: extends 'base.html'> |
/usr/local/lib/python3.9/dist-packages/django/template/loader_tags.py
, line 153, 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 | <BlockContext: blocks=defaultdict(<class 'list'>, {'content': [<Block Node: content. Contents: [<TextNode: '\n\t\t\t'>]>]})> |
blocks | {'content': <Block Node: content. Contents: [<TextNode: '\n\t\t\t'>]>} |
compiled_parent | <Template template_string="{% load static %}<..."> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
node | <django.template.defaulttags.LoadNode object at 0x7f3bff44c550> |
self | <ExtendsNode: extends 'base.html'> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 168, in _render
def __repr__(self):
return '<%s template_string="%s...">' % (
self.__class__.__qualname__,
self.source[:20].replace('\n', ''),
)
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}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
self | <Template template_string="{% load static %}<..."> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 977, in render
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString(''.join([…
node.render_annotated(context) for node in self
]))
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
self | [<django.template.defaulttags.LoadNode object at 0x7f3bff44c550>, <TextNode: '\n<html>\n\t<head>\n\t\t<meta c'>, <PrefixNode for 'MEDIA_URL'>, <Variable Node: setup.favicon>, <TextNode: '">\n\t\t<link href="https://'>, StaticNode(varname=None, path=<FilterExpression '"css/bootstrap-custom.css"'>), <TextNode: '" rel="stylesheet">\n\t\t<li'>, StaticNode(varname=None, path=<FilterExpression '"css/sm-core-css.css"'>), <TextNode: '" rel="stylesheet">\n\t\t<li'>, StaticNode(varname=None, path=<FilterExpression '"css/bootstrap-custom.css"'>), <TextNode: '" rel="stylesheet">\n\t\t<li'>, StaticNode(varname=None, path=<FilterExpression '"css/sm-clean.css"'>), <TextNode: '" rel="stylesheet">\n\t\t<li'>, StaticNode(varname=None, path=<FilterExpression '"css/main.css"'>), <TextNode: '" rel="stylesheet">\n\t\t<li'>, StaticNode(varname=None, path=<FilterExpression '"css/menu.css"'>), <TextNode: '" rel="stylesheet">\n\t\t<li'>, StaticNode(varname=None, path=<FilterExpression '"css/paragraph.css"'>), <TextNode: '" rel="stylesheet">\n\t\t<li'>, StaticNode(varname=None, path=<FilterExpression '"css/news.css"'>), <TextNode: '" rel="stylesheet">\n\t\t<li'>, StaticNode(varname=None, path=<FilterExpression '"css/helper.css"'>), <TextNode: '" rel="stylesheet">\n\t\t<li'>, StaticNode(varname=None, path=<FilterExpression '"fa/css/all.css"'>), <TextNode: '" rel="stylesheet">\n\t\t<li'>, StaticNode(varname=None, path=<FilterExpression '"bootstrap-icons-1.8.1/bootstrap-icons.css"'>), <TextNode: '" rel="stylesheet">\n\t\t<li'>, StaticNode(varname=None, path=<FilterExpression '"css/dal_bootstrap_fix.css"'>), <TextNode: '" rel="stylesheet">\n\t\t<sc'>, StaticNode(varname=None, path=<FilterExpression '"js/jquery.js"'>), <TextNode: '" type="text/javascript">'>, StaticNode(varname=None, path=<FilterExpression '"js/jquery.smartmenus.js"'>), <TextNode: '" type="text/javascript">'>, StaticNode(varname=None, path=<FilterExpression '"js/jquery.fullscreen.min.js"'>), <TextNode: '" type="text/javascript">'>, StaticNode(varname=None, path=<FilterExpression '"jquery-ui-1.12.1/jquery-ui.js"'>), <TextNode: '" type="text/javascript">'>, StaticNode(varname=None, path=<FilterExpression '"jquery-ui-1.12.1/jquery-ui.css"'>), <TextNode: '" rel="stylesheet">\n\t\t<sc'>, StaticNode(varname=None, path=<FilterExpression '"bootstrap_datepicker/css/bootstrap-datepicker.min.css"'>), <TextNode: '" rel="stylesheet">\n\t\t<sc'>, StaticNode(varname=None, path=<FilterExpression '"bootstrap_datepicker/js/bootstrap-datepicker.min.js"'>), <TextNode: '"></script>\n\t\t<script src'>, StaticNode(varname=None, path=<FilterExpression '"bootstrap_datepicker/locales/bootstrap-datepicker.pl.min.js"'>), <TextNode: '"></script>\n\n\t\t<script sr'>, StaticNode(varname=None, path=<FilterExpression '"js/moment-with-locales.js"'>), <TextNode: '"></script>\n\t\t<link href='>, StaticNode(varname=None, path=<FilterExpression '"daterangepicker/daterangepicker.css"'>), <TextNode: '" rel="stylesheet">\n\t\t<sc'>, StaticNode(varname=None, path=<FilterExpression '"daterangepicker/daterangepicker.min.js"'>), <TextNode: '"></script>\n\n\t\t<script sr'>, StaticNode(varname=None, path=<FilterExpression '"js/jquery.formset.js"'>), <TextNode: '"></script>\n\n\t\t<script sr'>, StaticNode(varname=None, path=<FilterExpression '"js/intjo.js"'>), <TextNode: '" type="text/javascript">'>, <Variable Node: setup.brand_color>, <TextNode: '!important;\n\t\t}\n\t\t.brand-'>, <Variable Node: setup.brand_color>, <TextNode: '!important;\n\t\t}\n\t\t</style'>, <IfNode>, <TextNode: '\n\t\t<main>\n\t\t\t'>, <IncludeNode: template=<FilterExpression "'breadcrumb.html'">>, <TextNode: '\n\t\t\t'>, <IncludeNode: template=<FilterExpression "'messages.html'">>, <TextNode: '\n\t\t\t'>, <Block Node: content. Contents: [<TextNode: '\n\t\t\t'>]>, <TextNode: '\n\t\t</main>\n\t\t'>, <IncludeNode: template=<FilterExpression "'footer.html'">>, <TextNode: '\n\t<script>\n\t\tdatepicker()'>] |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 978, in <listcomp>
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString(''.join([
node.render_annotated(context) for node in self…
]))
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
Variable | Value |
---|---|
.0 | <list_iterator object at 0x7f3bff08e610> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
node | <Block Node: content. Contents: [<TextNode: '\n\t\t\t'>]> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 938, 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:
# Store the actual node that caused the exception.
if not hasattr(e, '_culprit_node'):
e._culprit_node = self
if (
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
self | <Block Node: content. Contents: [<TextNode: '\n\t\t\t'>]> |
/usr/local/lib/python3.9/dist-packages/django/template/loader_tags.py
, line 65, in render
push = block = block_context.pop(self.name)
if block is None:
block = self
# Create new block so we can store context without thread-safety issues.
block = type(self)(block.name, block.nodelist)
block.context = context
context['block'] = block
result = block.nodelist.render(context)…
if push is not None:
block_context.push(self.name, push)
return result
def super(self):
if not hasattr(self, 'context'):
Variable | Value |
---|---|
block | <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]> |
block_context | <BlockContext: blocks=defaultdict(<class 'list'>, {'content': [<Block Node: content. Contents: [<TextNode: '\n\t\t\t'>]>]})> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
push | <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]> |
self | <Block Node: content. Contents: [<TextNode: '\n\t\t\t'>]> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 977, in render
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString(''.join([…
node.render_annotated(context) for node in self
]))
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
self | [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>] |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 978, in <listcomp>
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString(''.join([
node.render_annotated(context) for node in self…
]))
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
Variable | Value |
---|---|
.0 | <list_iterator object at 0x7f3bff5aeac0> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
node | <IfNode> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 938, 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:
# Store the actual node that caused the exception.
if not hasattr(e, '_culprit_node'):
e._culprit_node = self
if (
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
self | <IfNode> |
/usr/local/lib/python3.9/dist-packages/django/template/defaulttags.py
, line 298, in render
match = condition.eval(context)
except VariableDoesNotExist:
match = None
else: # else clause
match = True
if match:
return nodelist.render(context)…
return ''
class LoremNode(Node):
def __init__(self, count, method, common):
Variable | Value |
---|---|
condition | (> (literal <FilterExpression 'page.paragraphs.all|length'>) (literal <FilterExpression '0'>)) |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
match | True |
nodelist | [<TextNode: '\n\t'>, <main.templatetags.paragraphs.ParagraphsNode object at 0x7f3bff2390a0>, <TextNode: '\n'>] |
self | <IfNode> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 977, in render
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString(''.join([…
node.render_annotated(context) for node in self
]))
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
self | [<TextNode: '\n\t'>, <main.templatetags.paragraphs.ParagraphsNode object at 0x7f3bff2390a0>, <TextNode: '\n'>] |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 978, in <listcomp>
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString(''.join([
node.render_annotated(context) for node in self…
]))
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
Variable | Value |
---|---|
.0 | <list_iterator object at 0x7f3bff2eb5b0> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
node | <main.templatetags.paragraphs.ParagraphsNode object at 0x7f3bff2390a0> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 938, 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:
# Store the actual node that caused the exception.
if not hasattr(e, '_culprit_node'):
e._culprit_node = self
if (
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
self | <main.templatetags.paragraphs.ParagraphsNode object at 0x7f3bff2390a0> |
./main/templatetags/paragraphs.py
, line 43, in render
else:
return self.Return(data, Template(paragraph.text).render(Context({**context, **data})))
def render(self, context):
result = ''
page = self.page.resolve(context)
for paragraph in page.paragraphs.filter(level__lte=0):
render = self.render_paragraph(paragraph, context.flatten())…
result += str(render)
return result
@register.tag(name="paragraphs")
def paragraphs(parser, token):
tag_name, page = token.split_contents()
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>}] |
page | <Page: Training List Page> |
paragraph | <Paragraph2: > |
render | <main.templatetags.paragraphs.ParagraphsNode.Return object at 0x7f3bff1788e0> |
result | ('\r\n' '\r\n' '<h1 class="par-title" style="color: #006EC7;">Szkolenia</h1>\r\n' '\r\n' '\r\n' '\r\n' '<style>\r\n' 'div.par-module-filter {\r\n' '\tmargin: 32px;\r\n' '\tmargin-top: 0px;\r\n' '\tmargin-bottom: 8px;\r\n' '}\r\n' '</style>\r\n' '<div class="par-module-filter">\r\n' '\t<p>\r\n' '\t\t<button class="btn btn-primary my-1 mr-3" type="button" ' 'data-toggle="collapse" data-target="#collapseModuleFilter-69" ' 'aria-expanded="false" aria-controls="collapseModuleFilter-69"><i class="fas ' 'fa-filter"></i> Filtruj</button>\r\n' '\t\t\r\n' '\t</p>\r\n' ' \t<div class="collapse" id="collapseModuleFilter-69">\r\n' '\t\t<div class="card card-body">\r\n' '\t\t\t\r\n' '\t\t\t<form>\r\n' '\t\t\t\t<div class="form-group is-valid"><label for="id_name">Nazwa ' 'szkolenia</label><input type="text" name="name" class="form-control ' 'is-valid" placeholder="Nazwa szkolenia" title="" id="id_name"></div>\r\n' '\t\t\t\t<button type="submit" class="btn btn-primary">Ok</button>\r\n' '\t\t\t</form>\r\n' '\t\t</div>\r\n' '\t</div>\r\n' '</div>') |
self | <main.templatetags.paragraphs.ParagraphsNode object at 0x7f3bff2390a0> |
./main/templatetags/paragraphs.py
, line 35, in render_paragraph
data['url'] = Template(paragraph.url).render(Context(context))
data['children'] = []
for child in paragraph.get_children():
data['children'].append(self.render_paragraph(child, {**context, **data}))
if paragraph.template:
#return self.Return(data, Template(paragraph.template.tpl).render(Context({**context, **data})))
tpl = paragraph.pretpl + paragraph.template.tpl if paragraph.pretpl else paragraph.template.tpl
return self.Return(data, Template(tpl).render(Context({**context, **data})))…
else:
return self.Return(data, Template(paragraph.text).render(Context({**context, **data})))
def render(self, context):
result = ''
page = self.page.resolve(context)
Variable | Value |
---|---|
context | {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'False': False, 'None': None, 'True': True, 'active_filters': [], 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'branch_act': None, 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'csrf_token': <SimpleLazyObject: <function csrf.<locals>._get_val at 0x7f3bfece3ee0>>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'filter_qs': '', 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'objects': <Page 13 of 13>, 'page': <Page: Training List Page>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'path': [], 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'prefix': 'tr2', 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'setup': <Setup: Setup object (1)>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>} |
data | {'children': [], 'content': '', 'file': <FieldFile: None>, 'id': 68, 'tag': 'None', 'text': '', 'url': 'None'} |
paragraph | <Paragraph2: > |
self | <main.templatetags.paragraphs.ParagraphsNode object at 0x7f3bff2390a0> |
tpl | ('{% load imagekit %}\r\n' '<style>\r\n' '.par-trainings {\r\n' '\tmargin: 0 48px;\r\n' '\tjustify-content: center;\r\n' '\tfont-size: 16px;\r\n' " font-family: 'Quicksand', sans-serif;\r\n" '}\r\n' '.par-job-trainings div {\r\n' '\tflex-grow: 0;\r\n' '\tflex-basis: 0;\r\n' '}\r\n' '.par-trainings .card {\r\n' '\twidth: 320px;\r\n' '\tmargin: 16px;\r\n' '}\r\n' '@media only screen and (max-width: 1024px) {\r\n' '\t.par-trainings .carda {\r\n' '\t\twidth: 100%;\r\n' '\t}\r\n' '}\r\n' '</style>\r\n' '{% if objects %}\r\n' '\t{% if text %}\r\n' '\t\t<h2 class="par-subtitle">{{ text }}</h2>\r\n' '\t{% endif %}\r\n' '\t<div class="par-trainings row"> \r\n' '\t{% for training in objects %}\r\n' '\t\t<div>\r\n' '\t\t\t<div class="card">\r\n' '\t\t\t\t{% if training.image or 1 %}\r\n' "\t\t\t\t\t{% generateimage 'main:resize' source=training.get_image " 'height=512 as img %}\r\n' ' \t\t \t \t\t<img src="{{ img.url }}" class="card-img-top" alt="...">\r\n' '\t\t\t\t{% endif %}\r\n' '\t\t\t\t<div class="card-body">\r\n' '\t\t\t\t\t<h5 class="card-title">{{ training }}</h5>\r\n' '\t\t\t\t\t<a href="{{ training.get_absolute_url }}" class="btn ' 'btn-primary">Więcej informacji</a>\r\n' '\t\t\t\t</div>\r\n' '\t\t\t</div>\r\n' '\t\t</div>\r\n' '\t{% endfor %}\r\n' '\t</div>\r\n' '\t{% if show_all %}\r\n' '\t\t<div class="par-std text-right">\r\n' '\t\t\t<a class="btn btn-primary" href="/{{ objects.0.module_prefix }}/" ' 'role="button">Pokaż wszystkie szkolenia</a>\r\n' '\t\t</div>\r\n' '\t{% endif %}\r\n' '{% endif %}') |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 176, 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}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
self | <Template template_string="{% load imagekit %} ..."> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 168, in _render
def __repr__(self):
return '<%s template_string="%s...">' % (
self.__class__.__qualname__,
self.source[:20].replace('\n', ''),
)
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}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
self | <Template template_string="{% load imagekit %} ..."> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 977, in render
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString(''.join([…
node.render_annotated(context) for node in self
]))
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
self | [<django.template.defaulttags.LoadNode object at 0x7f3bff04c610>, <TextNode: '\r\n<style>\r\n.par-trainings'>, <IfNode>] |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 978, in <listcomp>
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString(''.join([
node.render_annotated(context) for node in self…
]))
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
Variable | Value |
---|---|
.0 | <list_iterator object at 0x7f3bff04c520> |
context | [{'True': True, 'False': False, 'None': None}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
node | <IfNode> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 938, 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:
# Store the actual node that caused the exception.
if not hasattr(e, '_culprit_node'):
e._culprit_node = self
if (
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
self | <IfNode> |
/usr/local/lib/python3.9/dist-packages/django/template/defaulttags.py
, line 298, in render
match = condition.eval(context)
except VariableDoesNotExist:
match = None
else: # else clause
match = True
if match:
return nodelist.render(context)…
return ''
class LoremNode(Node):
def __init__(self, count, method, common):
Variable | Value |
---|---|
condition | (literal <FilterExpression 'objects'>) |
context | [{'True': True, 'False': False, 'None': None}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
match | <Page 13 of 13> |
nodelist | [<TextNode: '\r\n\t'>, <IfNode>, <TextNode: '\r\n\t<div class="par-traini'>, <ForNode: for training in objects, tail_len: 7>, <TextNode: '\r\n\t</div>\r\n\t'>, <IfNode>, <TextNode: '\r\n'>] |
self | <IfNode> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 977, in render
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString(''.join([…
node.render_annotated(context) for node in self
]))
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
self | [<TextNode: '\r\n\t'>, <IfNode>, <TextNode: '\r\n\t<div class="par-traini'>, <ForNode: for training in objects, tail_len: 7>, <TextNode: '\r\n\t</div>\r\n\t'>, <IfNode>, <TextNode: '\r\n'>] |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 978, in <listcomp>
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString(''.join([
node.render_annotated(context) for node in self…
]))
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
Variable | Value |
---|---|
.0 | <list_iterator object at 0x7f3bfee6ce80> |
context | [{'True': True, 'False': False, 'None': None}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
node | <ForNode: for training in objects, tail_len: 7> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 938, 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:
# Store the actual node that caused the exception.
if not hasattr(e, '_culprit_node'):
e._culprit_node = self
if (
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
self | <ForNode: for training in objects, tail_len: 7> |
/usr/local/lib/python3.9/dist-packages/django/template/defaulttags.py
, line 217, 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}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
i | 15 |
item | <Training: Szkolenie UDT na wózki widłowe> |
len_values | 16 |
loop_dict | {'counter': 16, 'counter0': 15, 'first': False, 'last': True, 'parentloop': {}, 'revcounter': 1, 'revcounter0': 0} |
node | <IfNode> |
nodelist | ['\r\n\t\t<div>\r\n\t\t\t<div class="card">\r\n\t\t\t\t', '\r\n' '\t\t\t\t\t\r\n' ' \t\t \t \t\t<img ' 'src="/media/CACHE/images/training/intjo_notebook_8xHkPgM/52449e3df26a3638b1a545c9723dbbba.jpg" ' 'class="card-img-top" alt="...">\r\n' '\t\t\t\t', '\r\n\t\t\t\t<div class="card-body">\r\n\t\t\t\t\t<h5 class="card-title">', 'Analiza opinii i orzeczeń w praktyce szkolnej', '</h5>\r\n\t\t\t\t\t<a href="', '/tr2/analiza-opinii-i-orzeczen-w-praktyce-szkolnej-218/', '" class="btn btn-primary">Więcej informacji</a>\r\n' '\t\t\t\t</div>\r\n' '\t\t\t</div>\r\n' '\t\t</div>\r\n' '\t', '\r\n\t\t<div>\r\n\t\t\t<div class="card">\r\n\t\t\t\t', '\r\n' '\t\t\t\t\t\r\n' ' \t\t \t \t\t<img ' 'src="/media/CACHE/images/training/intjo_notebook_8xHkPgM/52449e3df26a3638b1a545c9723dbbba.jpg" ' 'class="card-img-top" alt="...">\r\n' '\t\t\t\t', '\r\n\t\t\t\t<div class="card-body">\r\n\t\t\t\t\t<h5 class="card-title">', 'Nauczanie zdalne a praca z uczniem niepełnosprawnym oraz ze specjalnymi ' 'potrzebami edukacyjnymi', '</h5>\r\n\t\t\t\t\t<a href="', '/tr2/nauczanie-zdalne-a-praca-z-uczniem-niepelnosprawnym-oraz-ze-specjalnymi-potrzebami-edukacyjnymi-219/', '" class="btn btn-primary">Więcej informacji</a>\r\n' '\t\t\t\t</div>\r\n' '\t\t\t</div>\r\n' '\t\t</div>\r\n' '\t', '\r\n\t\t<div>\r\n\t\t\t<div class="card">\r\n\t\t\t\t', '\r\n' '\t\t\t\t\t\r\n' ' \t\t \t \t\t<img ' 'src="/media/CACHE/images/training/intjo_notebook_8xHkPgM/52449e3df26a3638b1a545c9723dbbba.jpg" ' 'class="card-img-top" alt="...">\r\n' '\t\t\t\t', '\r\n\t\t\t\t<div class="card-body">\r\n\t\t\t\t\t<h5 class="card-title">', 'Warsztat dla nauczycieli: „Zjawisko agresji i przemocy”', '</h5>\r\n\t\t\t\t\t<a href="', '/tr2/warsztat-dla-nauczycieli-zjawisko-agresji-i-przemocy-221/', '" class="btn btn-primary">Więcej informacji</a>\r\n' '\t\t\t\t</div>\r\n' '\t\t\t</div>\r\n' '\t\t</div>\r\n' '\t', '\r\n\t\t<div>\r\n\t\t\t<div class="card">\r\n\t\t\t\t', '\r\n' '\t\t\t\t\t\r\n' ' \t\t \t \t\t<img ' 'src="/media/CACHE/images/training/intjo_notebook_8xHkPgM/52449e3df26a3638b1a545c9723dbbba.jpg" ' 'class="card-img-top" alt="...">\r\n' '\t\t\t\t', '\r\n\t\t\t\t<div class="card-body">\r\n\t\t\t\t\t<h5 class="card-title">', 'Zajęcia dla nauczycieli „Poszkodowani, sprawcy i świadkowie”', '</h5>\r\n\t\t\t\t\t<a href="', '/tr2/zajecia-dla-nauczycieli-poszkodowani-sprawcy-i-swiadkowie-222/', '" class="btn btn-primary">Więcej informacji</a>\r\n' '\t\t\t\t</div>\r\n' '\t\t\t</div>\r\n' '\t\t</div>\r\n' '\t', '\r\n\t\t<div>\r\n\t\t\t<div class="card">\r\n\t\t\t\t', '\r\n' '\t\t\t\t\t\r\n' ' \t\t \t \t\t<img ' 'src="/media/CACHE/images/training/intjo_notebook_8xHkPgM/52449e3df26a3638b1a545c9723dbbba.jpg" ' 'class="card-img-top" alt="...">\r\n' '\t\t\t\t', '\r\n\t\t\t\t<div class="card-body">\r\n\t\t\t\t\t<h5 class="card-title">', 'Warsztat dla nauczycieli „Jak reagować na agresję? Jak zwracać uwagę ' 'uczniom?”', '</h5>\r\n\t\t\t\t\t<a href="', '/tr2/warsztat-dla-nauczycieli-jak-reagowac-na-agresje-jak-zwracac-uwage-uczniom-223/', '" class="btn btn-primary">Więcej informacji</a>\r\n' '\t\t\t\t</div>\r\n' '\t\t\t</div>\r\n' '\t\t</div>\r\n' '\t', '\r\n\t\t<div>\r\n\t\t\t<div class="card">\r\n\t\t\t\t', '\r\n' '\t\t\t\t\t\r\n' ' \t\t \t \t\t<img ' 'src="/media/CACHE/images/training/intjo_notebook_8xHkPgM/52449e3df26a3638b1a545c9723dbbba.jpg" ' 'class="card-img-top" alt="...">\r\n' '\t\t\t\t', '\r\n\t\t\t\t<div class="card-body">\r\n\t\t\t\t\t<h5 class="card-title">', 'Szkolenie dla nauczycieli „Agresja i przemoc w szkole, czyli co powinniśmy ' 'wiedzieć, by skutecznie działać?"', '</h5>\r\n\t\t\t\t\t<a href="', '/tr2/szkolenie-dla-nauczycieli-agresja-i-przemoc-w-szkole-czyli-co-powinnismy-wiedziec-by-skutecznie-dzialac-224/', '" class="btn btn-primary">Więcej informacji</a>\r\n' '\t\t\t\t</div>\r\n' '\t\t\t</div>\r\n' '\t\t</div>\r\n' '\t', '\r\n\t\t<div>\r\n\t\t\t<div class="card">\r\n\t\t\t\t', '\r\n' '\t\t\t\t\t\r\n' ' \t\t \t \t\t<img ' 'src="/media/CACHE/images/trai… <trimmed 9697 bytes string> |
num_loopvars | 1 |
parentloop | {} |
pop_context | False |
self | <ForNode: for training in objects, tail_len: 7> |
unpack | False |
values | <Page 13 of 13> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 938, 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:
# Store the actual node that caused the exception.
if not hasattr(e, '_culprit_node'):
e._culprit_node = self
if (
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
self | <IfNode> |
/usr/local/lib/python3.9/dist-packages/django/template/defaulttags.py
, line 298, in render
match = condition.eval(context)
except VariableDoesNotExist:
match = None
else: # else clause
match = True
if match:
return nodelist.render(context)…
return ''
class LoremNode(Node):
def __init__(self, count, method, common):
Variable | Value |
---|---|
condition | (or (literal <FilterExpression 'training.image'>) (literal <FilterExpression '1'>)) |
context | [{'True': True, 'False': False, 'None': None}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
match | 1 |
nodelist | [<TextNode: '\r\n\t\t\t\t\t'>, <imagekit.templatetags.imagekit.GenerateImageAssignmentNode object at 0x7f3bff3123a0>, <TextNode: '\r\n \t\t \t \t\t<img src="'>, <Variable Node: img.url>, <TextNode: '" class="card-img-top" al'>] |
self | <IfNode> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 977, in render
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString(''.join([…
node.render_annotated(context) for node in self
]))
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
self | [<TextNode: '\r\n\t\t\t\t\t'>, <imagekit.templatetags.imagekit.GenerateImageAssignmentNode object at 0x7f3bff3123a0>, <TextNode: '\r\n \t\t \t \t\t<img src="'>, <Variable Node: img.url>, <TextNode: '" class="card-img-top" al'>] |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 978, in <listcomp>
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString(''.join([
node.render_annotated(context) for node in self…
]))
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
Variable | Value |
---|---|
.0 | <list_iterator object at 0x7f3bff311130> |
context | [{'True': True, 'False': False, 'None': None}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
node | <imagekit.templatetags.imagekit.GenerateImageAssignmentNode object at 0x7f3bff3123a0> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 938, 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:
# Store the actual node that caused the exception.
if not hasattr(e, '_culprit_node'):
e._culprit_node = self
if (
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
self | <imagekit.templatetags.imagekit.GenerateImageAssignmentNode object at 0x7f3bff3123a0> |
/usr/local/lib/python3.9/dist-packages/imagekit/templatetags/imagekit.py
, line 51, in render
self._variable_name = variable_name
def get_variable_name(self, context):
return force_text(self._variable_name)
def render(self, context):
variable_name = self.get_variable_name(context)
context[variable_name] = get_cachefile(context, self._generator_id,…
self._generator_kwargs)
return ''
class GenerateImageTagNode(template.Node):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
self | <imagekit.templatetags.imagekit.GenerateImageAssignmentNode object at 0x7f3bff3123a0> |
variable_name | 'img' |
/usr/local/lib/python3.9/dist-packages/imagekit/templatetags/imagekit.py
, line 23, in get_cachefile
ASSIGNMENT_DELIMETER = 'as'
HTML_ATTRS_DELIMITER = '--'
DEFAULT_THUMBNAIL_GENERATOR = 'imagekit:thumbnail'
def get_cachefile(context, generator_id, generator_kwargs, source=None):
generator_id = generator_id.resolve(context)
kwargs = dict((k, v.resolve(context)) for k, v in generator_kwargs.items())…
generator = generator_registry.get(generator_id, **kwargs)
return ImageCacheFile(generator)
def parse_dimensions(dimensions):
"""
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
generator_id | 'main:resize' |
generator_kwargs | {'height': <FilterExpression '512'>, 'source': <FilterExpression 'training.get_image'>} |
source | None |
/usr/local/lib/python3.9/dist-packages/imagekit/templatetags/imagekit.py
, line 23, in <genexpr>
ASSIGNMENT_DELIMETER = 'as'
HTML_ATTRS_DELIMITER = '--'
DEFAULT_THUMBNAIL_GENERATOR = 'imagekit:thumbnail'
def get_cachefile(context, generator_id, generator_kwargs, source=None):
generator_id = generator_id.resolve(context)
kwargs = dict((k, v.resolve(context)) for k, v in generator_kwargs.items())…
generator = generator_registry.get(generator_id, **kwargs)
return ImageCacheFile(generator)
def parse_dimensions(dimensions):
"""
Variable | Value |
---|---|
.0 | <dict_itemiterator object at 0x7f3c01404a90> |
context | [{'True': True, 'False': False, 'None': None}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
k | 'source' |
v | <FilterExpression 'training.get_image'> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 701, 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}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
ignore_failures | False |
self | <FilterExpression 'training.get_image'> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 829, 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}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
self | <Variable: 'training.get_image'> |
/usr/local/lib/python3.9/dist-packages/django/template/base.py
, line 891, in _resolve_lookup
if callable(current):
if getattr(current, 'do_not_call_in_templates', False):
pass
elif getattr(current, 'alters_data', False):
current = context.template.engine.string_if_invalid
else:
try: # method call (assuming no args required)
current = current()…
except TypeError:
signature = inspect.signature(current)
try:
signature.bind()
except TypeError: # arguments *were* required
current = context.template.engine.string_if_invalid # invalid method call
Variable | Value |
---|---|
bit | 'get_image' |
context | [{'True': True, 'False': False, 'None': None}, {'True': True, 'False': False, 'None': None, 'csrf_token': <SimpleLazyObject: 'yUJCGsSEbJW9vacXFYXTCxuaYxNqOMtvJGmaN1HQl8N8gHkN1GRNxWK3azJaXnyk'>, 'request': <WSGIRequest: GET '/tr2/?page=13'>, 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7f3bff1f9130>>), 'messages': <FallbackStorage: request=<WSGIRequest: GET '/tr2/?page=13'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'prefix': 'tr2', 'view': <main.module_views.ModuleView object at 0x7f3c0135b100>, 'setup': <Setup: Setup object (1)>, 'module': <Module: Szkolenia>, 'name': 'Szkolenia', 'page': <Page: Training List Page>, 'filter_form': <ModuleFilterForm bound=True, valid=True, fields=(name)>, 'objects': <Page 13 of 13>, 'active_filters': [], 'filter_qs': '', 'branch_act': None, 'path': [], 'branches': <QuerySet [<Branch: Szkoła językowa>, <Branch: Centrum szkoleniowe>, <Branch: Centrum Rozwoju Zawodowego>, <Branch: Ośrodek Doskonalenia Nauczycieli>]>, 'infos': <QuerySet [<Info: Szkolenia z zakresu programowania obrabiarek CNC oraz kursy spawalnicze również w Koninie>, <Info: Kurs spawacza z egzaminem w Turku? Dzięki INTJO już tak!>, <Info: Wspólne działanie - stabilna przyszłość zawodowa>, <Info: INTJO na konfrerencji EDUMIXER 2019>]>, 'partners': <QuerySet [<Partner: Vocational Competence Certificate>, <Partner: Vocational Competence Certificate>, <Partner: telc gGmbH>, <Partner: Rada ds. Kompetencji Sektora IT>, <Partner: Polskie Towarzystwo Informatyczne>, <Partner: Polska Izba Informatyki i Telekomunikacji>, <Partner: Wood-Mizer>, <Partner: Łukasiewicz - Instytut Spawalnictwa>, <Partner: Powiat Kolski>, <Partner: Powiat Koniński>]>, 'trainings_on_start_page': <TreeQuerySet [<Training: Inżynieria projektowania komputerowego CAD 2D i 3D>, <Training: Kurs spawania blach metodą TIG-141>, <Training: Kurs spawania blach metodą MAG-135>, <Training: Kurs operatora wózków jezdniowych (widłowych)>, <Training: Kurs uprawnienia SEP G1 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G2 w zakresie eksploatacji i dozoru>, <Training: Kurs uprawnienia SEP G3 w zakresie eksploatacji i dozoru>, <Training: Kurs podstaw rysunku technicznego>, <Training: Kurs programowania obrabiarek sterowanych numerycznie (CNC)>, <Training: Kurs programowania sterowników logicznych PLC (Siemens)>, <Training: Grafika komputerowa>, <Training: Projektowanie stron internetowych>, <Training: Programowanie SINUMERIK DIN/ISO>, <Training: Obsługa i programowanie ShopMill>, <Training: Obsługa i programowanie ShopTurn>, <Training: Język obcy branżowy - angielski>, <Training: Język obcy branżowy - niemiecki>, <Training: Język obcy ogólny - angielski>, <Training: Język obcy ogólny - niemiecki>]>, 'block': <Block Node: content. Contents: [<TextNode: '\n\n\n'>, <IfNode>, <TextNode: '\n\n'>, <IfNode>, <TextNode: '\n\n'>]>, 'id': 68, 'tag': 'None', 'text': '', 'content': '', 'file': <FieldFile: None>, 'url': 'None', 'children': []}] |
current | <bound method Training.get_image of <Training: Szkolenie UDT na wózki widłowe>> |
self | <Variable: 'training.get_image'> |
template_name | 'unknown' |
./crm/training_module.py
, line 128, in get_image
def open_trainings_in_plan(self):
return self.traininginplan_set.filter(is_closed=False)
def get_image(self):
if self.image:
return self.image
else:
return self.parent.get_image()…
class Meta:
verbose_name = _('Training')
verbose_name_plural = _('Trainings')
class TrainingSkill(models.Model):
Variable | Value |
---|---|
self | <Training: Szkolenie UDT na wózki widłowe> |
AnonymousUser
Variable | Value |
---|---|
page | '13' |
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
CONTENT_LENGTH | '' |
CONTENT_TYPE | '' |
CSRF_COOKIE | 'j9nQQndTs2pkeRRB1IIfJtLSxlVIYuOeuV0oXW25CrgjZoZrnqC9ES1LJnRs75T3' |
CSRF_COOKIE_NEEDS_UPDATE | True |
DOCUMENT_ROOT | '/usr/share/nginx/html' |
HTTPS | 'on' |
HTTP_ACCEPT | '*/*' |
HTTP_HOST | 'www.intjo.pl' |
HTTP_USER_AGENT | 'claudebot' |
PATH_INFO | '/tr2/' |
QUERY_STRING | 'page=13' |
REMOTE_ADDR | '3.238.228.191' |
REMOTE_PORT | '43374' |
REQUEST_METHOD | 'GET' |
REQUEST_SCHEME | 'https' |
REQUEST_URI | '/tr2/?page=13' |
SCRIPT_NAME | '' |
SERVER_NAME | 'www.intjo.pl' |
SERVER_PORT | '443' |
SERVER_PROTOCOL | 'HTTP/1.1' |
uwsgi.node | b'vps-f1f51863' |
uwsgi.version | b'2.0.19.1-debian' |
wsgi.errors | <_io.TextIOWrapper name=2 mode='w' encoding='UTF-8'> |
wsgi.file_wrapper | <built-in function uwsgi_sendfile> |
wsgi.input | <uwsgi._Input object at 0x7f3bff3261d0> |
wsgi.multiprocess | True |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'https' |
wsgi.version | (1, 0) |
website.settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ADMIN_TOOLS_MENU | 'website.menu.CustomMenu' |
ALLOWED_HOSTS | ['www.intjo.pl', 'intjo.pl', '145.239.83.146', '127.0.0.1'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'crm.User' |
BASE_DIR | '/home/intjo/website' |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
CODEMIRROR_BASE_CSS | ['CodeMirror/lib/codemirror.css'] |
CODEMIRROR_BASE_JS | ['CodeMirror/lib/codemirror.js'] |
CODEMIRROR_BUNDLE_CSS_NAME | 'dcm-{settings_name}_css' |
CODEMIRROR_BUNDLE_CSS_OPTIONS | {'filters': 'yui_css', 'output': 'css/dcm-{settings_name}.min.css'} |
CODEMIRROR_BUNDLE_JS_NAME | 'dcm-{settings_name}_js' |
CODEMIRROR_BUNDLE_JS_OPTIONS | {'filters': 'yui_js', 'output': 'js/dcm-{settings_name}.min.js'} |
CODEMIRROR_CSS_ASSET_TAG | '<link rel="stylesheet" href="{url}">' |
CODEMIRROR_FIELD_INIT_JS | ('<script>var {varname} = ' 'CodeMirror.fromTextArea(document.getElementById("{inputid}"),{settings});</script>') |
CODEMIRROR_JS_ASSET_TAG | '<script type="text/javascript" src="{url}"></script>' |
CODEMIRROR_MODES | {'css': 'CodeMirror/mode/css/css.js', 'django': 'CodeMirror/mode/django/django.js', 'htmlmixed': 'CodeMirror/mode/htmlmixed/htmlmixed.js', 'javascript': 'CodeMirror/mode/javascript/javascript.js', 'python': 'CodeMirror/mode/python/python.js', 'rst': 'CodeMirror/mode/rst/rst.js', 'stex': 'CodeMirror/mode/stex/stex.js', 'vbscript': 'CodeMirror/mode/vbscript/vbscript.js', 'xml': 'CodeMirror/mode/xml/xml.js'} |
CODEMIRROR_SETTINGS | {'css': {'addons': ['CodeMirror/addon/edit/matchbrackets.js', 'CodeMirror/addon/hint/show-hint.js', 'CodeMirror/addon/hint/css-hint.js'], 'extraKeys': '********************', 'extra_css': ['CodeMirror/addon/hint/show-hint.css'], 'matchBrackets': True, 'modes': ['css']}, 'django': {'addons': ['CodeMirror/addon/mode/overlay.js'], 'mode': 'django', 'modes': ['xml', 'javascript', 'css', 'vbscript', 'htmlmixed', 'django']}, 'empty': {}, 'html': {'mode': 'htmlmixed', 'modes': ['xml', 'javascript', 'css', 'vbscript', 'htmlmixed']}, 'javascript': {'addons': ['CodeMirror/addon/edit/matchbrackets.js', 'CodeMirror/addon/comment/continuecomment.js', 'CodeMirror/addon/comment/comment.js'], 'continueComments': 'Enter', 'extraKeys': '********************', 'matchBrackets': True, 'modes': ['javascript']}, 'python': {'addons': ['CodeMirror/addon/edit/matchbrackets.js'], 'matchBrackets': True, 'mode': {'name': 'python', 'singleLineStringErrors': False, 'version': 3}, 'modes': ['python']}, 'restructuredtext': {'addons': ['CodeMirror/addon/mode/overlay.js'], 'mode': 'rst', 'modes': ['python', 'stex', 'rst']}, 'scss': {'addons': ['CodeMirror/addon/edit/matchbrackets.js'], 'matchBrackets': True, 'mode': 'text/x-scss', 'modes': ['css']}} |
CODEMIRROR_THEMES | {'ambiance': 'CodeMirror/theme/ambiance.css'} |
CRISPY_TEMPLATE_PACK | 'bootstrap4' |
CSRF_COOKIE_AGE | 31449600 |
CSRF_COOKIE_DOMAIN | None |
CSRF_COOKIE_HTTPONLY | False |
CSRF_COOKIE_NAME | 'csrftoken' |
CSRF_COOKIE_PATH | '/' |
CSRF_COOKIE_SAMESITE | 'Lax' |
CSRF_COOKIE_SECURE | False |
CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
CSRF_HEADER_NAME | 'HTTP_X_CSRFTOKEN' |
CSRF_TRUSTED_ORIGINS | [] |
CSRF_USE_SESSIONS | False |
DATABASES | {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.sqlite3', 'HOST': '', 'NAME': '/home/intjo/website/db.sqlite3', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} |
DATABASE_ROUTERS | [] |
DATA_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 |
DATETIME_FORMAT | 'N j, Y, P' |
DATETIME_INPUT_FORMATS | ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M'] |
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_AUTO_FIELD | 'django.db.models.AutoField' |
DEFAULT_CHARSET | 'utf-8' |
DEFAULT_EXCEPTION_REPORTER | 'django.views.debug.ExceptionReporter' |
DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
DEFAULT_FROM_EMAIL | 'crm@intjo.pl' |
DEFAULT_INDEX_TABLESPACE | '' |
DEFAULT_TABLESPACE | '' |
DISALLOWED_USER_AGENTS | [] |
EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
EMAIL_HOST | 'pro1.mail.ovh.net' |
EMAIL_HOST_PASSWORD | '********************' |
EMAIL_HOST_USER | 'crm@intjo.pl' |
EMAIL_PORT | 587 |
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 | True |
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 | ['website.formats'] |
FORM_RENDERER | 'django.forms.renderers.DjangoTemplates' |
GRAPPELLI_EXTENSIONS_NAVBAR | 'website.extensions.Navbar' |
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 | ['dal', 'dal_select2', 'dal_admin_filters', 'grappelli', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'nested_admin', 'mptt', 'colorfield', 'djangocodemirror', 'imagekit', 'bootstrap4', 'bootstrap_datepicker_plus', 'bootstrap_daterangepicker', 'djangoformsetjs', 'crispy_forms', 'tabbed_admin', 'main', 'crm', 'teryt', 'mama_cas'] |
INTERNAL_IPS | [] |
LANGUAGES | [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian 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'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('ms', 'Malay'), ('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'), ('tg', 'Tajik'), ('th', 'Thai'), ('tk', 'Turkmen'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] |
LANGUAGES_BIDI | ['he', 'ar', 'ar-dz', 'fa', 'ur'] |
LANGUAGE_CODE | 'pl' |
LANGUAGE_COOKIE_AGE | None |
LANGUAGE_COOKIE_DOMAIN | None |
LANGUAGE_COOKIE_HTTPONLY | False |
LANGUAGE_COOKIE_NAME | 'django_language' |
LANGUAGE_COOKIE_PATH | '/' |
LANGUAGE_COOKIE_SAMESITE | None |
LANGUAGE_COOKIE_SECURE | False |
LOCALE_PATHS | [] |
LOGGING | {} |
LOGGING_CONFIG | 'logging.config.dictConfig' |
LOGIN_REDIRECT_URL | '/accounts/profile/' |
LOGIN_URL | '/crm/login/' |
LOGOUT_REDIRECT_URL | None |
MAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
MANAGERS | [] |
MEDIA_ROOT | '/home/intjo/website/media/' |
MEDIA_URL | '/media/' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
MESSAGE_TAGS | {10: 'alert-info', 20: 'alert-info', 25: 'alert-success', 30: 'alert-warning', 40: 'alert-danger'} |
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 | '********************' |
PREPEND_WWW | False |
ROOT_URLCONF | 'website.urls' |
SECRET_KEY | '********************' |
SECURE_CONTENT_TYPE_NOSNIFF | True |
SECURE_CROSS_ORIGIN_OPENER_POLICY | 'same-origin' |
SECURE_HSTS_INCLUDE_SUBDOMAINS | False |
SECURE_HSTS_PRELOAD | False |
SECURE_HSTS_SECONDS | 0 |
SECURE_PROXY_SSL_HEADER | None |
SECURE_REDIRECT_EXEMPT | [] |
SECURE_REFERRER_POLICY | 'same-origin' |
SECURE_SSL_HOST | None |
SECURE_SSL_REDIRECT | False |
SERVER_EMAIL | 'crm@intjo.pl' |
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 | 'website.settings' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
STATICFILES_DIRS | [] |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | '/home/intjo/website/static/' |
STATIC_URL | '/static/' |
TABBED_ADMIN_USE_JQUERY_UI | True |
TEMPLATES | [{'BACKEND': 'django.template.backends.django.DjangoTemplates', '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'], 'loaders': ['django.template.loaders.app_directories.Loader', 'apptemplates.Loader']}}] |
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/Warsaw' |
USE_DEPRECATED_PYTZ | False |
USE_I18N | True |
USE_L10N | True |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | True |
USE_X_FORWARDED_HOST | False |
USE_X_FORWARDED_PORT | False |
WSGI_APPLICATION | 'website.wsgi.application' |
X_FRAME_OPTIONS | 'DENY' |
YEAR_MONTH_FORMAT | 'F Y' |
You’re seeing this error because you have DEBUG = True
in your
Django settings file. Change that to False
, and Django will
display a standard page generated by the handler for this status code.