[Errno 2] No such file or directory
Request Method: | GET |
---|---|
Request URL: | http://mathe-lexikon.at/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html |
Django Version: | 1.4.5 |
Exception Type: | OSError |
Exception Value: | [Errno 2] No such file or directory |
Exception Location: | /usr/lib/python2.7/subprocess.py in _execute_child, line 1047 |
Python Executable: | /home/mathlex/.virtualenvs/django13html/bin/python2.7 |
Python Version: | 2.7.18 |
Python Path: | ['/home/mathlex/live', '/home/mathlex/.virtualenvs/django13html/bin', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django_threaded_multihost-1.4_1-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/Coffin-0.3.6-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django_recaptcha_works-0.3.4-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/markdown2-2.0.1-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/lamson-1.1-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/akismet-0.2.0-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/pytz-2012d-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django_countries-1.0.5-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django_kombu-0.9.2-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/html5lib-0.90-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django_keyedcache-1.4_6-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django_robots-0.8.1-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django_celery-2.2.7-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/pystache-0.3.1-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/python_openid-2.2.5-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/oauth2-1.5.211-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/Unidecode-0.04.9-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django_followit-0.0.3-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/python_daemon-1.6-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/nose-1.1.2-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/mock-1.0b1-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/celery-2.2.7-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django_picklefield-0.2.1-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/httplib2-0.7.4-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/lockfile-0.9.1-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/pyparsing-1.5.6-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/kombu-1.5.1-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/anyjson-0.3.3-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/python_dateutil-1.5-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/amqplib-1.0.2-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django_unit_field-0.0.2-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/distribute-0.7.3-py2.7.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/pip-20.3.4-py2.7.egg', '/home/mathlex/live/src', '/home/mathlex/live/src/$PYTHONPATH', '/home/mathlex/.virtualenvs/django13html/lib/python2.7', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/plat-x86_64-linux-gnu', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/lib-tk', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/lib-old', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/lib-tk', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages', '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/newrelic-2.2.1.3', '/home/mathlex/migration/distribute-0.7.3'] |
Server time: | Fr, 29 Mär 2024 06:38:45 +0100 |
In template /home/mathlex/live/src/templates/mathtools/plugin.html
, error at line 85
75 | <h2 class="alert-heading">{% trans "Ergebnis" %}: |
---|---|
76 | {{ result.variable }} = {{ result.result }} {{ result.unit }}</h2> |
77 | <p>(Wert gerundet auf 4 Dezimalstellen: {{ result.result|floatformat:4 }} {{ result.unit }})</p> |
78 | </div> |
79 | {% endif %} |
80 | |
81 | {% if result.solution_process %} |
82 | <div class="alert alert-block alert-warning"> |
83 | <h3 class="alert-heading">{% trans "Der Lösungsweg im Detail" %}:</h3> |
84 | {% for content_item in result.solution_process %} |
85 | {{ content_item.render|safe }} |
86 | {% endfor %} |
87 | </div> |
88 | {% endif %} |
89 | |
90 | </form> |
91 | </div> |
92 | <script type="text/javascript"> |
93 | var mode = mode || "{{ current_path }}"; |
94 | </script> |
95 |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/core/handlers/base.py
in get_response
for middleware_method in self._view_middleware:
response = middleware_method(request, callback, callback_args, callback_kwargs)
if response:
break
if response is None:
try:
response = callback(request, *callback_args, **callback_kwargs)...
except Exception, e:
# If the view raised an exception, run it through exception
# middleware, and if the exception middleware returns a
# response, use that. Otherwise, reraise the exception.
for middleware_method in self._exception_middleware:
response = middleware_method(request, e)
Variable | Value |
---|---|
exceptions | <module 'django.core.exceptions' from '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/core/exceptions.pyc'> |
e | OSError(2, 'No such file or directory') |
callback_args | () |
settings | <django.conf.LazySettings object at 0x7f8c97ede850> |
middleware_method | <bound method RedirectFallbackMiddleware.process_exception of <cms_redirects.middleware.RedirectFallbackMiddleware object at 0x7f8c95f1b110>> |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f8c96ddf150> |
request | "<WSGIRequest\npath:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html,\nGET:<QueryDict: {}>,\nPOST:<QueryDict: {}>,\nCOOKIES:{},\nMETA:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV',\n 'CSRF_COOKIE_USED': True,\n 'HTTP_ACCEPT': '*/*',\n 'HTTP_CONNECTION': 'close',\n 'HTTP_HOST': 'mathe-lexikon.at',\n 'HTTP_USER_AGENT': 'claudebot',\n 'HTTP_X_FORWARDED_FOR': '44.222.161.54',\n 'HTTP_X_FORWARDED_PROTO': 'https',\n 'HTTP_X_REAL_IP': '44.222.161.54',\n 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html',\n 'QUERY_STRING': '',\n 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html',\n 'REMOTE_ADDR': '44.222.161.54',\n 'REMOTE_PORT': '80',\n 'REQUEST_METHOD': 'GET',\n 'SCRIPT_NAME': u'',\n 'SERVER_NAME': 'mathe-lexikon.at',\n 'SERVER_PORT': '80',\n 'SERVER_PROTOCOL': 'HTTP/1.0',\n 'SERVER_SOFTWARE': 'gunicorn/0.14.6',\n 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>,\n 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>,\n 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>,\n 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>,\n 'wsgi.multiprocess': True,\n 'wsgi.multithread': False,\n 'wsgi.run_once': False,\n 'wsgi.url_scheme': 'http',\n 'wsgi.version': (1, 0)}>" |
callback | <function details at 0x7f8c95daedd0> |
resolver | <RegexURLResolver urls (None:None) ^/> |
urlresolvers | <module 'django.core.urlresolvers' from '/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/core/urlresolvers.pyc'> |
callback_kwargs | {'slug': u'geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck'} |
response | None |
urlconf | 'urls' |
/home/mathlex/live/src/cms/views.py
in details
context['current_page'] = page
context['has_change_permissions'] = page.has_change_permission(request)
context['has_view_permissions'] = page.has_view_permission(request)
if not context['has_view_permissions']:
return _handle_no_page(request, slug)
return render_to_response(template_name, context_instance=context)...
Variable | Value |
---|---|
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
available_languages | ['de-at'] |
template_name | u'template_tool.html' |
request | "<WSGIRequest\npath:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html,\nGET:<QueryDict: {}>,\nPOST:<QueryDict: {}>,\nCOOKIES:{},\nMETA:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV',\n 'CSRF_COOKIE_USED': True,\n 'HTTP_ACCEPT': '*/*',\n 'HTTP_CONNECTION': 'close',\n 'HTTP_HOST': 'mathe-lexikon.at',\n 'HTTP_USER_AGENT': 'claudebot',\n 'HTTP_X_FORWARDED_FOR': '44.222.161.54',\n 'HTTP_X_FORWARDED_PROTO': 'https',\n 'HTTP_X_REAL_IP': '44.222.161.54',\n 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html',\n 'QUERY_STRING': '',\n 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html',\n 'REMOTE_ADDR': '44.222.161.54',\n 'REMOTE_PORT': '80',\n 'REQUEST_METHOD': 'GET',\n 'SCRIPT_NAME': u'',\n 'SERVER_NAME': 'mathe-lexikon.at',\n 'SERVER_PORT': '80',\n 'SERVER_PROTOCOL': 'HTTP/1.0',\n 'SERVER_SOFTWARE': 'gunicorn/0.14.6',\n 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>,\n 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>,\n 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>,\n 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>,\n 'wsgi.multiprocess': True,\n 'wsgi.multithread': False,\n 'wsgi.run_once': False,\n 'wsgi.url_scheme': 'http',\n 'wsgi.version': (1, 0)}>" |
frontend_lang | 'de-at' |
slug | u'geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck' |
user_languages | ['de-at'] |
current_language | 'de-at' |
attrs | '' |
redirect_url | u'' |
page_languages | ['de-at'] |
page | <Page: Umfang Dreieck> |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/shortcuts/__init__.py
in render_to_response
def render_to_response(*args, **kwargs):
"""
Returns a HttpResponse whose content is filled with the result of calling
django.template.loader.render_to_string() with the passed arguments.
"""
httpresponse_kwargs = {'mimetype': kwargs.pop('mimetype', None)}
return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)...
def render(request, *args, **kwargs):
"""
Returns a HttpResponse whose content is filled with the result of calling
django.template.loader.render_to_string() with the passed arguments.
Uses a RequestContext by default.
Variable | Value |
---|---|
httpresponse_kwargs | {'mimetype': None} |
args | (u'template_tool.html',) |
kwargs | {'context_instance': [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}]} |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/loader.py
in render_to_string
t = get_template(template_name)
if not context_instance:
return t.render(Context(dictionary))
# Add the dictionary to the context stack, ensuring it gets removed again
# to keep the context_instance in the same state it started in.
context_instance.update(dictionary)
try:
return t.render(context_instance)...
finally:
context_instance.pop()
def select_template(template_name_list):
"Given a list of template names, returns the first that can be loaded."
if not template_name_list:
Variable | Value |
---|---|
template_name | u'template_tool.html' |
t | <django.template.base.Template object at 0x7f8c9411a710> |
dictionary | {} |
context_instance | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in render
def _render(self, context):
return self.nodelist.render(context)
def render(self, context):
"Display stage -- can be called many times"
context.render_context.push()
try:
return self._render(context)...
finally:
context.render_context.pop()
def compile_string(template_string, origin):
"Compiles template_string into NodeList ready for rendering"
if settings.TEMPLATE_DEBUG:
Variable | Value |
---|---|
self | <django.template.base.Template object at 0x7f8c9411a710> |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in _render
def __iter__(self):
for node in self.nodelist:
for subnode in node:
yield subnode
def _render(self, context):
return self.nodelist.render(context)...
def render(self, context):
"Display stage -- can be called many times"
context.render_context.push()
try:
return self._render(context)
Variable | Value |
---|---|
self | <django.template.base.Template object at 0x7f8c9411a710> |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = self.render_node(node, context)...
else:
bit = node
bits.append(force_unicode(bit))
return mark_safe(u''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
node | <ExtendsNode: extends "template_default.html"> |
self | [<ExtendsNode: extends "template_default.html">] |
bits | [] |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/debug.py
in render_node
def compile_function_error(self, token, e):
if not hasattr(e, 'django_template_source'):
e.django_template_source = token.source
class DebugNodeList(NodeList):
def render_node(self, node, context):
try:
return node.render(context)...
except Exception, e:
if not hasattr(e, 'django_template_source'):
e.django_template_source = node.source
raise
Variable | Value |
---|---|
node | <ExtendsNode: extends "template_default.html"> |
self | [<ExtendsNode: extends "template_default.html">] |
e | OSError(2, 'No such file or directory') |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/loader_tags.py
in render
blocks = dict([(n.name, n) for n in
compiled_parent.nodelist.get_nodes_by_type(BlockNode)])
block_context.add_blocks(blocks)
break
# Call Template._render explicitly so the parser context stays
# the same.
return compiled_parent._render(context)...
class BaseIncludeNode(Node):
def __init__(self, *args, **kwargs):
self.extra_context = kwargs.pop('extra_context', {})
self.isolated_context = kwargs.pop('isolated_context', False)
super(BaseIncludeNode, self).__init__(*args, **kwargs)
Variable | Value |
---|---|
node | <ExtendsNode: extends "base.html"> |
block_context | <django.template.loader_tags.BlockContext object at 0x7f8c9411ae50> |
compiled_parent | <django.template.base.Template object at 0x7f8c9411a090> |
self | <ExtendsNode: extends "template_default.html"> |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in _render
def __iter__(self):
for node in self.nodelist:
for subnode in node:
yield subnode
def _render(self, context):
return self.nodelist.render(context)...
def render(self, context):
"Display stage -- can be called many times"
context.render_context.push()
try:
return self._render(context)
Variable | Value |
---|---|
self | <django.template.base.Template object at 0x7f8c9411a090> |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = self.render_node(node, context)...
else:
bit = node
bits.append(force_unicode(bit))
return mark_safe(u''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
node | <ExtendsNode: extends "base.html"> |
self | [<ExtendsNode: extends "base.html">] |
bits | [] |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/debug.py
in render_node
def compile_function_error(self, token, e):
if not hasattr(e, 'django_template_source'):
e.django_template_source = token.source
class DebugNodeList(NodeList):
def render_node(self, node, context):
try:
return node.render(context)...
except Exception, e:
if not hasattr(e, 'django_template_source'):
e.django_template_source = node.source
raise
Variable | Value |
---|---|
node | <ExtendsNode: extends "base.html"> |
self | [<ExtendsNode: extends "base.html">] |
e | OSError(2, 'No such file or directory') |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/loader_tags.py
in render
blocks = dict([(n.name, n) for n in
compiled_parent.nodelist.get_nodes_by_type(BlockNode)])
block_context.add_blocks(blocks)
break
# Call Template._render explicitly so the parser context stays
# the same.
return compiled_parent._render(context)...
class BaseIncludeNode(Node):
def __init__(self, *args, **kwargs):
self.extra_context = kwargs.pop('extra_context', {})
self.isolated_context = kwargs.pop('isolated_context', False)
super(BaseIncludeNode, self).__init__(*args, **kwargs)
Variable | Value |
---|---|
node | <django.template.defaulttags.LoadNode object at 0x7f8c9522f090> |
blocks | {u'"additional_css"': <Block Node: "additional_css". Contents: []>, u'"additional_js"': <Block Node: "additional_js". Contents: []>, u'"additional_link"': <Block Node: "additional_link". Contents: []>, u'"base_content"': <Block Node: "base_content". Contents: []>, u'"billboard"': <Block Node: "billboard". Contents: [<Text Node: '<div id="a2b">'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c95480fd0>, <Text Node: '</div>'>]>, u'"bottom_content"': <Block Node: "bottom_content". Contents: []>, u'"breadcrumb"': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>, u'"crosslinks"': <Block Node: "crosslinks". Contents: [<Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621e10>, <Text Node: ' <!-- '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621210>, <Text Node: ' --> '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621310>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621e90>, <Text Node: ' '>]>, u'"head_description"': <Block Node: "head_description". Contents: [<Tag: page_attribute>]>, u'"head_keywords"': <Block Node: "head_keywords". Contents: [<Tag: page_attribute>]>, u'"head_title"': <Block Node: "head_title". Contents: [<Tag: page_attribute>, <Text Node: ' '>]>, u'"mainmenu"': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>, u'"module"': <Block Node: "module". Contents: [<Text Node: 'lexikon'>]>, u'"page_summary"': <Block Node: "page_summary". Contents: [<Tag: page_attribute>]>, u'"page_title"': <Block Node: "page_title". Contents: [<Tag: page_attribute>, <Text Node: ' '>]>, u'"rectangle_bottom"': <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, u'"rightmenu"': <Block Node: "rightmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>, u'"submenu"': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>, u'"user_toolbar"': <Block Node: "user_toolbar". Contents: [<WithNode>]>, u'"whole_content"': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>} |
block_context | <django.template.loader_tags.BlockContext object at 0x7f8c9411ae50> |
n | <Block Node: "additional_js". Contents: []> |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
compiled_parent | <django.template.base.Template object at 0x7f8c94c60450> |
self | <ExtendsNode: extends "base.html"> |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in _render
def __iter__(self):
for node in self.nodelist:
for subnode in node:
yield subnode
def _render(self, context):
return self.nodelist.render(context)...
def render(self, context):
"Display stage -- can be called many times"
context.render_context.push()
try:
return self._render(context)
Variable | Value |
---|---|
self | <django.template.base.Template object at 0x7f8c94c60450> |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = self.render_node(node, context)...
else:
bit = node
bits.append(force_unicode(bit))
return mark_safe(u''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
node | <Tag: render_block> |
bit | u'\n ' |
bits | [u'', u'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">\n\n<head>\n <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n <title>', u'Umfang Dreieck\n ', u'</title>\n <meta name="description" content="', u'Formel zur Berechnung des Umfangs eines Dreiecks.', u'" />\n <meta name="keywords" content="', u'Umfangberechnung, Umfang, Dreieck', u'" />\n <meta http-equiv="content-language" content="de" />\n <meta name="verify-v1" content="sEB8u6CiYRL/8SgbyfGScJy2v8ZXcDApWKdnUsnVkN8=" />\n <meta name="google-site-verification" content="lPxy3Wf4C2yeRoCtrm4cPl5ICG4sR5GVrSkTjCayiJw" />\n <meta name="p:domain_verify" content="f09a2a60dc8ad4ea7a508b2d4534fee8" />\n <link rel="stylesheet" type="text/css" href="', u'/static/', u'css/style-1.15.css" />\n <link rel="stylesheet" type="text/css" href="', u'/static/', u'css/fontawesome.min.css" />\n <link rel="stylesheet" type="text/css" href="', u'/static/', u'css/brands.min.css" />\n <link rel="stylesheet" type="text/css" href="', u'/static/', u'css/regular.min.css" />\n\n <link rel="shortcut icon" type="image/x-icon" href="', u'/static/', u'ico/favicon.ico" />\n ', u'', u'\n '] |
self | [<django.template.defaulttags.LoadNode object at 0x7f8c9522f090>, <Text Node: '<!DOCTYPE html PUBLIC "-/'>, <Block Node: "head_title". Contents: [<Tag: page_attribute>, <Text Node: ' '>]>, <Text Node: '</title> <meta name="de'>, <Block Node: "head_description". Contents: [<Tag: page_attribute>]>, <Text Node: '" /> <meta name="keywor'>, <Block Node: "head_keywords". Contents: [<Tag: page_attribute>]>, <Text Node: '" /> <meta http-equiv="'>, <Variable Node: STATIC_URL>, <Text Node: 'css/style-1.15.css" /> '>, <Variable Node: STATIC_URL>, <Text Node: 'css/fontawesome.min.css" '>, <Variable Node: STATIC_URL>, <Text Node: 'css/brands.min.css" /> '>, <Variable Node: STATIC_URL>, <Text Node: 'css/regular.min.css" /> '>, <Variable Node: STATIC_URL>, <Text Node: 'ico/favicon.ico" /> '>, <Block Node: "additional_link". Contents: []>, <Text Node: ' '>, <Tag: render_block>] |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/debug.py
in render_node
def compile_function_error(self, token, e):
if not hasattr(e, 'django_template_source'):
e.django_template_source = token.source
class DebugNodeList(NodeList):
def render_node(self, node, context):
try:
return node.render(context)...
except Exception, e:
if not hasattr(e, 'django_template_source'):
e.django_template_source = node.source
raise
Variable | Value |
---|---|
node | <Tag: render_block> |
self | [<django.template.defaulttags.LoadNode object at 0x7f8c9522f090>, <Text Node: '<!DOCTYPE html PUBLIC "-/'>, <Block Node: "head_title". Contents: [<Tag: page_attribute>, <Text Node: ' '>]>, <Text Node: '</title> <meta name="de'>, <Block Node: "head_description". Contents: [<Tag: page_attribute>]>, <Text Node: '" /> <meta name="keywor'>, <Block Node: "head_keywords". Contents: [<Tag: page_attribute>]>, <Text Node: '" /> <meta http-equiv="'>, <Variable Node: STATIC_URL>, <Text Node: 'css/style-1.15.css" /> '>, <Variable Node: STATIC_URL>, <Text Node: 'css/fontawesome.min.css" '>, <Variable Node: STATIC_URL>, <Text Node: 'css/brands.min.css" /> '>, <Variable Node: STATIC_URL>, <Text Node: 'css/regular.min.css" /> '>, <Variable Node: STATIC_URL>, <Text Node: 'ico/favicon.ico" /> '>, <Block Node: "additional_link". Contents: []>, <Text Node: ' '>, <Tag: render_block>] |
e | OSError(2, 'No such file or directory') |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/classytags/core.py
in render
"""
INTERNAL method to prepare rendering
Usually you should not override this method, but rather use render_tag.
"""
items = self.kwargs.items()
kwargs = dict([(key, value.resolve(context)) for key, value in items])
kwargs.update(self.blocks)
return self.render_tag(context, **kwargs)...
def render_tag(self, context, **kwargs):
"""
The method you should override in your custom tags
"""
raise NotImplementedError
Variable | Value |
---|---|
key | 'postprocessor' |
items | [('name', <classytags.values.StringValue object at 0x7f8c95009890>), ('postprocessor', <TemplateConstant: None>)] |
self | <Tag: render_block> |
value | <TemplateConstant: None> |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
kwargs | {'name': u'css', 'nodelist': [<Text Node: ' '>, <Block Node: "additional_css". Contents: []>, <Text Node: ' '>, <IfNode>, <Text Node: ' </head> <body> '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d01d0>, <Text Node: ' '>, <Tag: cms_toolbar>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d0690>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d0090>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d05d0>, <Text Node: ' <div id="wrapper" clas'>, <Block Node: "module". Contents: [<Text Node: 'lexikon'>]>, <Text Node: '"> '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d0ed0>, <Text Node: ' <div id="fix-to-top"'>, <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>, <Text Node: ' </div> '>, <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>, <Text Node: ' </div> <div id="'>, <Block Node: "page_title". Contents: [<Tag: page_attribute>, <Text Node: ' '>]>, <Text Node: '</h1> <span class="'>, <Block Node: "page_summary". Contents: [<Tag: page_attribute>]>, <Text Node: '</span> </div> <d'>, <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>, <Text Node: ' </div> '>, <Block Node: "billboard". Contents: [<Text Node: '<div id="a2b">'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c95480fd0>, <Text Node: '</div>'>]>, <Text Node: ' <div id="content-fra'>, <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>, <Text Node: ' </div> <div '>, <django.template.defaulttags.URLNode object at 0x7f8c94621450>, <Text Node: '"> <input'>, <Variable Node: query>, <Text Node: '" /> <inp'>, <Block Node: "rightmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>, <Text Node: ' <div id="a2e">'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621810>, <Text Node: '</div> '>, <Block Node: "crosslinks". Contents: [<Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621e10>, <Text Node: ' <!-- '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621210>, <Text Node: ' --> '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621310>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621e90>, <Text Node: ' '>]>, <Text Node: ' </div> <div '>, <Tag: page_attribute>, <Text Node: '</strong><br /> &co'>, <Tag: show_menu_below_id>, <Text Node: '<br /> <b>Follow us'>, <Variable Node: STATIC_URL>, <Text Node: 'js/jquery-1.7.1.min.js"><'>, <Variable Node: STATIC_URL>, <Text Node: 'js/jquery.form.js"></scri'>, <Variable Node: STATIC_URL>, <Text Node: 'js/fancybox-1.3.4.js"></s'>, <Variable Node: STATIC_URL>, <Text Node: 'js/ml-1.11.js"></script> '>, <Tag: render_block>], 'postprocessor': None} |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/sekizai/templatetags/sekizai_tags.py
in render_tag
Argument('postprocessor', required=False, default=None, resolve=False),
parser_class=SekizaiParser,
)
def render_tag(self, context, name, postprocessor, nodelist):
if not validate_context(context):
return nodelist.render(context)
rendered_contents = nodelist.render(context)...
varname = getattr(settings, 'SEKIZAI_VARNAME', 'SEKIZAI_CONTENT_HOLDER')
data = context[varname][name].render()
if postprocessor:
func = import_processor(postprocessor)
data = func(context, data, name)
return '%s\n%s' % (data, rendered_contents)
Variable | Value |
---|---|
self | <Tag: render_block> |
nodelist | [<Text Node: ' '>, <Block Node: "additional_css". Contents: []>, <Text Node: ' '>, <IfNode>, <Text Node: ' </head> <body> '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d01d0>, <Text Node: ' '>, <Tag: cms_toolbar>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d0690>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d0090>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d05d0>, <Text Node: ' <div id="wrapper" clas'>, <Block Node: "module". Contents: [<Text Node: 'lexikon'>]>, <Text Node: '"> '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d0ed0>, <Text Node: ' <div id="fix-to-top"'>, <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>, <Text Node: ' </div> '>, <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>, <Text Node: ' </div> <div id="'>, <Block Node: "page_title". Contents: [<Tag: page_attribute>, <Text Node: ' '>]>, <Text Node: '</h1> <span class="'>, <Block Node: "page_summary". Contents: [<Tag: page_attribute>]>, <Text Node: '</span> </div> <d'>, <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>, <Text Node: ' </div> '>, <Block Node: "billboard". Contents: [<Text Node: '<div id="a2b">'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c95480fd0>, <Text Node: '</div>'>]>, <Text Node: ' <div id="content-fra'>, <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>, <Text Node: ' </div> <div '>, <django.template.defaulttags.URLNode object at 0x7f8c94621450>, <Text Node: '"> <input'>, <Variable Node: query>, <Text Node: '" /> <inp'>, <Block Node: "rightmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>, <Text Node: ' <div id="a2e">'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621810>, <Text Node: '</div> '>, <Block Node: "crosslinks". Contents: [<Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621e10>, <Text Node: ' <!-- '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621210>, <Text Node: ' --> '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621310>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621e90>, <Text Node: ' '>]>, <Text Node: ' </div> <div '>, <Tag: page_attribute>, <Text Node: '</strong><br /> &co'>, <Tag: show_menu_below_id>, <Text Node: '<br /> <b>Follow us'>, <Variable Node: STATIC_URL>, <Text Node: 'js/jquery-1.7.1.min.js"><'>, <Variable Node: STATIC_URL>, <Text Node: 'js/jquery.form.js"></scri'>, <Variable Node: STATIC_URL>, <Text Node: 'js/fancybox-1.3.4.js"></s'>, <Variable Node: STATIC_URL>, <Text Node: 'js/ml-1.11.js"></script> '>, <Tag: render_block>] |
name | u'css' |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
postprocessor | None |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = self.render_node(node, context)...
else:
bit = node
bits.append(force_unicode(bit))
return mark_safe(u''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
node | <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]> |
bit | u'\n <div id="content-frame">\n <div id="content">\n ' |
bits | [u'\n ', u'\n\n<link rel="stylesheet" type="text/css" href="/static/css/bootstrap.css" />\n', u'\n ', u'\n <!-- Google Ads -->\n <script type="text/javascript" class="cmplazyload" data-cmp-vendor="s26">\n\n var _gaq = _gaq || [];\n _gaq.push([\'_setAccount\', \'UA-503623-10\']);\n _gaq.push([\'_trackPageview\']);\n\n (function () {\n var ga = document.createElement(\'script\'); ga.type = \'text/javascript\'; ga.async = true;\n ga.src = (\'https:\' == document.location.protocol ? \'https://ssl\' : \'http://www\') + \'.google-analytics.com/ga.js\';\n var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(ga, s);\n })();\n\n </script>\n <!-- Netpoint Media Ad Async Tag -->\n <script data-cmp-ab="1" type=\'text/javascript\'>\n window.ADNPM = window.ADNPM || {}; ADNPM.cmd = ADNPM.cmd || [];\n ADNPM.pubAdUnits=[4450908,4450909,4450910,4450911,4450912];\n </script>\n <script type=\'text/javascript\' src=\'https://cdn.netpoint-media.de/1120277.js\' async=\'async\'></script>\n ', u'\n</head>\n<body>\n ', u' <!-- Consent manager for 3rdparty cookies and data -->\n <!-- semi-automatic must be placed directly after <body> -->\n <script>if(!("gdprAppliesGlobally" in window)){window.gdprAppliesGlobally=true}if(!("cmp_id" in window)||window.cmp_id<1){window.cmp_id=0}if(!("cmp_cdid" in window)){window.cmp_cdid="f1b2dd965a11"}if(!("cmp_params" in window)){window.cmp_params=""}if(!("cmp_host" in window)){window.cmp_host="a.delivery.consentmanager.net"}if(!("cmp_cdn" in window)){window.cmp_cdn="cdn.consentmanager.net"}if(!("cmp_proto" in window)){window.cmp_proto="https:"}if(!("cmp_codesrc" in window)){window.cmp_codesrc="1"}window.cmp_getsupportedLangs=function(){var b=["DE","EN","FR","IT","NO","DA","FI","ES","PT","RO","BG","ET","EL","GA","HR","LV","LT","MT","NL","PL","SV","SK","SL","CS","HU","RU","SR","ZH","TR","UK","AR","BS"];if("cmp_customlanguages" in window){for(var a=0;a<window.cmp_customlanguages.length;a++){b.push(window.cmp_customlanguages[a].l.toUpperCase())}}return b};window.cmp_getRTLLangs=function(){var a=["AR"];if("cmp_customlanguages" in window){for(var b=0;b<window.cmp_customlanguages.length;b++){if("r" in window.cmp_customlanguages[b]&&window.cmp_customlanguages[b].r){a.push(window.cmp_customlanguages[b].l)}}}return a};window.cmp_getlang=function(j){if(typeof(j)!="boolean"){j=true}if(j&&typeof(cmp_getlang.usedlang)=="string"&&cmp_getlang.usedlang!==""){return cmp_getlang.usedlang}var g=window.cmp_getsupportedLangs();var c=[];var f=location.hash;var e=location.search;var a="languages" in navigator?navigator.languages:[];if(f.indexOf("cmplang=")!=-1){c.push(f.substr(f.indexOf("cmplang=")+8,2).toUpperCase())}else{if(e.indexOf("cmplang=")!=-1){c.push(e.substr(e.indexOf("cmplang=")+8,2).toUpperCase())}else{if("cmp_setlang" in window&&window.cmp_setlang!=""){c.push(window.cmp_setlang.toUpperCase())}else{if(a.length>0){for(var d=0;d<a.length;d++){c.push(a[d])}}}}}if("language" in navigator){c.push(navigator.language)}if("userLanguage" in navigator){c.push(navigator.userLanguage)}var h="";for(var d=0;d<c.length;d++){var b=c[d].toUpperCase();if(g.indexOf(b)!=-1){h=b;break}if(b.indexOf("-")!=-1){b=b.substr(0,2)}if(g.indexOf(b)!=-1){h=b;break}}if(h==""&&typeof(cmp_getlang.defaultlang)=="string"&&cmp_getlang.defaultlang!==""){return cmp_getlang.defaultlang}else{if(h==""){h="EN"}}h=h.toUpperCase();return h};(function(){var u=document;var v=u.getElementsByTagName;var h=window;var o="";var b="_en";if("cmp_getlang" in h){o=h.cmp_getlang().toLowerCase();if("cmp_customlanguages" in h){for(var q=0;q<h.cmp_customlanguages.length;q++){if(h.cmp_customlanguages[q].l.toUpperCase()==o.toUpperCase()){o="en";break}}}b="_"+o}function x(i,e){var w="";i+="=";var s=i.length;var d=location;if(d.hash.indexOf(i)!=-1){w=d.hash.substr(d.hash.indexOf(i)+s,9999)}else{if(d.search.indexOf(i)!=-1){w=d.search.substr(d.search.indexOf(i)+s,9999)}else{return e}}if(w.indexOf("&")!=-1){w=w.substr(0,w.indexOf("&"))}return w}var k=("cmp_proto" in h)?h.cmp_proto:"https:";if(k!="http:"&&k!="https:"){k="https:"}var g=("cmp_ref" in h)?h.cmp_ref:location.href;var j=u.createElement("script");j.setAttribute("data-cmp-ab","1");var c=x("cmpdesign","cmp_design" in h?h.cmp_design:"");var f=x("cmpregulationkey","cmp_regulationkey" in h?h.cmp_regulationkey:"");var r=x("cmpgppkey","cmp_gppkey" in h?h.cmp_gppkey:"");var n=x("cmpatt","cmp_att" in h?h.cmp_att:"");j.src=k+"//"+h.cmp_host+"/delivery/cmp.php?"+("cmp_id" in h&&h.cmp_id>0?"id="+h.cmp_id:"")+("cmp_cdid" in h?"&cdid="+h.cmp_cdid:"")+"&h="+encodeURIComponent(g)+(c!=""?"&cmpdesign="+encodeURIComponent(c):"")+(f!=""?"&cmpregulationkey="+encodeURIComponent(f):"")+(r!=""?"&cmpgppkey="+encodeURIComponent(r):"")+(n!=""?"&cmpatt="+encodeURIComponent(n):"")+("cmp_params" in h?"&"+h.cmp_params:"")+(u.cookie.length>0?"&__cmpfcc=1":"")+"&l="+o.toLowerCase()+"&o="+(new Date()).getTime();j.type="text/javascript";j.async=true;if(u.currentScript&&u.currentScript.parentElement){u.currentScript.parentElement.appendChild(j)}else{if(u.body){u.body.appendChild(j)}else{var t=v("body");if(t.length==0){t=v("div")}if(t.length==0){t=v("span")}if(t.length==0){t=v("ins")}if(t.length==0){t=v("script")}if(t.length==0){t=v("head")}if(t.length>0){t[0].appendChild(j)}}}var m="js";var p=x("cmpdebugunminimized","cmpdebugunminimized" in h?h.cmpdebugunminimized:0)>0?"":".min";var a=x("cmpdebugcoverage","cmp_debugcoverage" in h?h.cmp_debugcoverage:"");if(a=="1"){m="instrumented";p=""}var j=u.createElement("script");j.src=k+"//"+h.cmp_cdn+"/delivery/"+m+"/cmp"+b+p+".js";j.type="text/javascript";j.setAttribute("data-cmp-ab","1");j.async=true;if(u.currentScript&&u.currentScript.parentElement){u.currentScript.parentElement.appendChild(j)}else{if(u.body){u.body.appendChild(j)}else{var t=v("body");if(t.length==0){t=v("div")}if(t.length==0){t=v("span")}if(t.length==0){t=v("ins")}if(t.length==0){t=v("script")}if(t.length==0){t=v("head")}if(t.length>0){t[0].appendChild(j)}}}})();window.cmp_addFrame=function(b){if(!window.frames[b]){if(document.body){var a=document.createElement("iframe");a.style.cssText="display:none";if("cmp_cdn" in window&&"cmp_ultrablocking" in window&&window.cmp_ultrablocking>0){a.src="//"+window.cmp_cdn+"/delivery/empty.html"}a.name=b;a.setAttribute("title","Intentionally hidden, please ignore");a.setAttribute("role","none");a.setAttribute("tabindex","-1");document.body.appendChild(a)}else{window.setTimeout(window.cmp_addFrame,10,b)}}};window.cmp_rc=function(h){var b=document.cookie;var f="";var d=0;while(b!=""&&d<100){d++;while(b.substr(0,1)==" "){b=b.substr(1,b.length)}var g=b.substring(0,b.indexOf("="));if(b.indexOf(";")!=-1){var c=b.substring(b.indexOf("=")+1,b.indexOf(";"))}else{var c=b.substr(b.indexOf("=")+1,b.length)}if(h==g){f=c}var e=b.indexOf(";")+1;if(e==0){e=b.length}b=b.substring(e,b.length)}return(f)};window.cmp_stub=function(){var a=arguments;__cmp.a=__cmp.a||[];if(!a.length){return __cmp.a}else{if(a[0]==="ping"){if(a[1]===2){a[2]({gdprApplies:gdprAppliesGlobally,cmpLoaded:false,cmpStatus:"stub",displayStatus:"hidden",apiVersion:"2.0",cmpId:31},true)}else{a[2](false,true)}}else{if(a[0]==="getUSPData"){a[2]({version:1,uspString:window.cmp_rc("")},true)}else{if(a[0]==="getTCData"){__cmp.a.push([].slice.apply(a))}else{if(a[0]==="addEventListener"||a[0]==="removeEventListener"){__cmp.a.push([].slice.apply(a))}else{if(a.length==4&&a[3]===false){a[2]({},false)}else{__cmp.a.push([].slice.apply(a))}}}}}}};window.cmp_gpp_ping=function(){return{gppVersion:"1.0",cmpStatus:"stub",cmpDisplayStatus:"hidden",supportedAPIs:["tcfca","usnat","usca","usva","usco","usut","usct"],cmpId:31}};window.cmp_gppstub=function(){var a=arguments;__gpp.q=__gpp.q||[];if(!a.length){return __gpp.q}var g=a[0];var f=a.length>1?a[1]:null;var e=a.length>2?a[2]:null;if(g==="ping"){return window.cmp_gpp_ping()}else{if(g==="addEventListener"){__gpp.e=__gpp.e||[];if(!("lastId" in __gpp)){__gpp.lastId=0}__gpp.lastId++;var c=__gpp.lastId;__gpp.e.push({id:c,callback:f});return{eventName:"listenerRegistered",listenerId:c,data:true,pingData:window.cmp_gpp_ping()}}else{if(g==="removeEventListener"){var h=false;__gpp.e=__gpp.e||[];for(var d=0;d<__gpp.e.length;d++){if(__gpp.e[d].id==e){__gpp.e[d].splice(d,1);h=true;break}}return{eventName:"listenerRemoved",listenerId:e,data:h,pingData:window.cmp_gpp_ping()}}else{if(g==="getGPPData"){return{sectionId:3,gppVersion:1,sectionList:[],applicableSections:[0],gppString:"",pingData:window.cmp_gpp_ping()}}else{if(g==="hasSection"||g==="getSection"||g==="getField"){return null}else{__gpp.q.push([].slice.apply(a))}}}}}};window.cmp_msghandler=function(d){var a=typeof d.data==="string";try{var c=a?JSON.parse(d.data):d.data}catch(f){var c=null}if(typeof(c)==="object"&&c!==null&&"__cmpCall" in c){var b=c.__cmpCall;window.__cmp(b.command,b.parameter,function(h,g){var e={__cmpReturn:{returnValue:h,success:g,callId:b.callId}};d.source.postMessage(a?JSON.stringify(e):e,"*")})}if(typeof(c)==="object"&&c!==null&&"__uspapiCall" in c){var b=c.__uspapiCall;window.__uspapi(b.command,b.version,function(h,g){var e={__uspapiReturn:{returnValue:h,success:g,callId:b.callId}};d.source.postMessage(a?JSON.stringify(e):e,"*")})}if(typeof(c)==="object"&&c!==null&&"__tcfapiCall" in c){var b=c.__tcfapiCall;window.__tcfapi(b.command,b.version,function(h,g){var e={__tcfapiReturn:{returnValue:h,success:g,callId:b.callId}};d.source.postMessage(a?JSON.stringify(e):e,"*")},b.parameter)}if(typeof(c)==="object"&&c!==null&&"__gppCall" in c){var b=c.__gppCall;window.__gpp(b.command,function(h,g){var e={__gppReturn:{returnValue:h,success:g,callId:b.callId}};d.source.postMessage(a?JSON.stringify(e):e,"*")},"parameter" in b?b.parameter:null,"version" in b?b.version:1)}};window.cmp_setStub=function(a){if(!(a in window)||(typeof(window[a])!=="function"&&typeof(window[a])!=="object"&&(typeof(window[a])==="undefined"||window[a]!==null))){window[a]=window.cmp_stub;window[a].msgHandler=window.cmp_msghandler;window.addEventListener("message",window.cmp_msghandler,false)}};window.cmp_setGppStub=function(a){if(!(a in window)||(typeof(window[a])!=="function"&&typeof(window[a])!=="object"&&(typeof(window[a])==="undefined"||window[a]!==null))){window[a]=window.cmp_gppstub;window[a].msgHandler=window.cmp_msghandler;window.addEventListener("message",window.cmp_msghandler,false)}};window.cmp_addFrame("__cmpLocator");if(!("cmp_disableusp" in window)||!window.cmp_disableusp){window.cmp_addFrame("__uspapiLocator")}if(!("cmp_disabletcf" in window)||!window.cmp_disabletcf){window.cmp_addFrame("__tcfapiLocator")}if(!("cmp_disablegpp" in window)||!window.cmp_disablegpp){window.cmp_addFrame("__gppLocator")}window.cmp_setStub("__cmp");if(!("cmp_disabletcf" in window)||!window.cmp_disabletcf){window.cmp_setStub("__tcfapi")}if(!("cmp_disableusp" in window)||!window.cmp_disableusp){window.cmp_setStub("__uspapi")}if(!("cmp_disablegpp" in window)||!window.cmp_disablegpp){window.cmp_setGppStub("__gpp")};</script>\n', u'\n ', u'', u'\n ', u'\n<div id="lb">\n\n<!-- Async Banner for network 59: Netpoint Media // Website: MATHE-LEXIKON.AT // Adslot: mat_rotation_728x90 (4450909) -->\n<div id=\'npm_4450909\'></div>\n<script>ADNPM.cmd.push(function(){ADNPM.loadAd(4450909)});</script>\n\n</div>\n', u'\n ', u'\n<div id="ss">\n\n<!--Async Banner for network 59: Netpoint Media // Website: MATHE-LEXIKON.AT // Adslot: mat_rotation_160x600 (4450911) -->\n<div id=\'npm_4450911\'></div>\n<script>ADNPM.cmd.push(function(){ADNPM.loadAd(4450911)});</script>\n\n</div>\n', u'\n ', u'<div class="social-icons">\n <a href="https://www.facebook.com/mathelexikonat/" target="_blank" class="facebook"><i class="fab fa-facebook-f"></i></a>\n <a href="https://www.pinterest.de/mathelexikonat/" target="_blank" class="pinterest"><i class="fab fa-pinterest"></i></a>\n <a href="https://www.instagram.com/mathelexikonat/" target="_blank" class="instagram"><i class="fab fa-instagram"></i></a>\n</div>\n', u'\n <div id="wrapper" class="', u'lexikon', u'">\n ', u'<div id="tbar">\n <ul>\n <li class="lexikon">\n <a href="/">Mathematik</a>\n </li>\n \n <li class="arbeitsblaetter">\n <a href="/arbeitsblaetter/" title="Arbeitsbl\xe4tter zum \xdcben - mit L\xf6sungen">Arbeitsbl\xe4tter</a>\n </li>\n \n <!-- \n \n -->\n </ul>\n</div>', u'\n <div id="fix-to-top">\n <div id="header">\n <a class="logo" href="http://www.mathe-lexikon.at/">Mathe-Lexikon.at | Mathematik Lexikon</a>\n ', u'\n \n<div id="mainmenu"><ul>\n <li class=""><a href="/grundlagen.html">Grundlagen</a></li>\n <li class=""><a href="/algebra.html">Algebra</a></li>\n <li class=""><a href="/analysis.html">Analysis</a></li>\n <li class=""><a href="/statistik.html">Statistik</a></li>\n <li class=""><a href="/mengenlehre.html">Mengenlehre</a></li>\n <li class=""><a href="/arithmetik.html">Arithmetik</a></li>\n <li class="s"><a href="/geometrie.html">Geometrie</a></li>\n <li class=""><a href="/buchvorstellungen.html">Buchvorstellungen</a></li>\n</ul></div>\n\n ', u'\n </div>\n ', u'\n \n<div id="submenu"><ul>\n <li class=""><a href="/geometrie/grundlagen.html">Grundlagen</a></li>\n <li class="s"><a href="/geometrie/ebene-figuren.html">Ebene Figuren</a></li>\n <li class=""><a href="/geometrie/geometrische-koerper.html">Geometrische K\xf6rper</a></li>\n <li class=""><a href="/geometrie/kartesisches-koordinatensystem.html">Kartesisches Koordinatensystem</a></li>\n <li class=""><a href="/geometrie/aehnlichkeit.html">\xc4hnlichkeit</a></li>\n</ul></div>\n\n ', u'\n </div>\n <div id="title">\n <h1>', u'Umfang Dreieck\n ', u'</h1>\n <span class="summary">', u'Formel zur Berechnung des Umfangs eines Dreiecks.', u'</span>\n </div>\n <div id="breadcrumb">\n ', u'<span>\n<a href="/geometrie.html">Geometrie</a> > \n\n<a href="/geometrie/ebene-figuren.html">Ebene Figuren</a> > \n\n<a href="/geometrie/ebene-figuren/dreiecke.html">Dreiecke</a> > \n\n<a href="/geometrie/ebene-figuren/dreiecke/flaecheumfang.html">Fl\xe4che/Umfang</a> > \n\nUmfang Dreieck\n</span>\n', u'\n </div>\n ', u'<div id="a2b"><div id="bb">\n\n<!-- Async Banner for network 59: Netpoint Media // Website: MATHE-LEXIKON.AT // Adslot: mat_rotation_900x300 (4450912) -->\n<div id=\'npm_4450912\'></div>\n<script>ADNPM.cmd.push(function(){ADNPM.loadAd(4450912)});</script>\n\n</div></div>', u'\n <div id="content-frame">\n <div id="content">\n '] |
self | [<Text Node: ' '>, <Block Node: "additional_css". Contents: []>, <Text Node: ' '>, <IfNode>, <Text Node: ' </head> <body> '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d01d0>, <Text Node: ' '>, <Tag: cms_toolbar>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d0690>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d0090>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d05d0>, <Text Node: ' <div id="wrapper" clas'>, <Block Node: "module". Contents: [<Text Node: 'lexikon'>]>, <Text Node: '"> '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d0ed0>, <Text Node: ' <div id="fix-to-top"'>, <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>, <Text Node: ' </div> '>, <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>, <Text Node: ' </div> <div id="'>, <Block Node: "page_title". Contents: [<Tag: page_attribute>, <Text Node: ' '>]>, <Text Node: '</h1> <span class="'>, <Block Node: "page_summary". Contents: [<Tag: page_attribute>]>, <Text Node: '</span> </div> <d'>, <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>, <Text Node: ' </div> '>, <Block Node: "billboard". Contents: [<Text Node: '<div id="a2b">'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c95480fd0>, <Text Node: '</div>'>]>, <Text Node: ' <div id="content-fra'>, <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>, <Text Node: ' </div> <div '>, <django.template.defaulttags.URLNode object at 0x7f8c94621450>, <Text Node: '"> <input'>, <Variable Node: query>, <Text Node: '" /> <inp'>, <Block Node: "rightmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>, <Text Node: ' <div id="a2e">'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621810>, <Text Node: '</div> '>, <Block Node: "crosslinks". Contents: [<Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621e10>, <Text Node: ' <!-- '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621210>, <Text Node: ' --> '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621310>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621e90>, <Text Node: ' '>]>, <Text Node: ' </div> <div '>, <Tag: page_attribute>, <Text Node: '</strong><br /> &co'>, <Tag: show_menu_below_id>, <Text Node: '<br /> <b>Follow us'>, <Variable Node: STATIC_URL>, <Text Node: 'js/jquery-1.7.1.min.js"><'>, <Variable Node: STATIC_URL>, <Text Node: 'js/jquery.form.js"></scri'>, <Variable Node: STATIC_URL>, <Text Node: 'js/fancybox-1.3.4.js"></s'>, <Variable Node: STATIC_URL>, <Text Node: 'js/ml-1.11.js"></script> '>, <Tag: render_block>] |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/debug.py
in render_node
def compile_function_error(self, token, e):
if not hasattr(e, 'django_template_source'):
e.django_template_source = token.source
class DebugNodeList(NodeList):
def render_node(self, node, context):
try:
return node.render(context)...
except Exception, e:
if not hasattr(e, 'django_template_source'):
e.django_template_source = node.source
raise
Variable | Value |
---|---|
node | <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]> |
self | [<Text Node: ' '>, <Block Node: "additional_css". Contents: []>, <Text Node: ' '>, <IfNode>, <Text Node: ' </head> <body> '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d01d0>, <Text Node: ' '>, <Tag: cms_toolbar>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d0690>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d0090>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d05d0>, <Text Node: ' <div id="wrapper" clas'>, <Block Node: "module". Contents: [<Text Node: 'lexikon'>]>, <Text Node: '"> '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c951d0ed0>, <Text Node: ' <div id="fix-to-top"'>, <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>, <Text Node: ' </div> '>, <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>, <Text Node: ' </div> <div id="'>, <Block Node: "page_title". Contents: [<Tag: page_attribute>, <Text Node: ' '>]>, <Text Node: '</h1> <span class="'>, <Block Node: "page_summary". Contents: [<Tag: page_attribute>]>, <Text Node: '</span> </div> <d'>, <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>, <Text Node: ' </div> '>, <Block Node: "billboard". Contents: [<Text Node: '<div id="a2b">'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c95480fd0>, <Text Node: '</div>'>]>, <Text Node: ' <div id="content-fra'>, <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>, <Text Node: ' </div> <div '>, <django.template.defaulttags.URLNode object at 0x7f8c94621450>, <Text Node: '"> <input'>, <Variable Node: query>, <Text Node: '" /> <inp'>, <Block Node: "rightmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>, <Text Node: ' <div id="a2e">'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621810>, <Text Node: '</div> '>, <Block Node: "crosslinks". Contents: [<Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621e10>, <Text Node: ' <!-- '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621210>, <Text Node: ' --> '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621310>, <Text Node: ' '>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c94621e90>, <Text Node: ' '>]>, <Text Node: ' </div> <div '>, <Tag: page_attribute>, <Text Node: '</strong><br /> &co'>, <Tag: show_menu_below_id>, <Text Node: '<br /> <b>Follow us'>, <Variable Node: STATIC_URL>, <Text Node: 'js/jquery-1.7.1.min.js"><'>, <Variable Node: STATIC_URL>, <Text Node: 'js/jquery.form.js"></scri'>, <Variable Node: STATIC_URL>, <Text Node: 'js/fancybox-1.3.4.js"></s'>, <Variable Node: STATIC_URL>, <Text Node: 'js/ml-1.11.js"></script> '>, <Tag: render_block>] |
e | OSError(2, 'No such file or directory') |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/loader_tags.py
in render
push = block = block_context.pop(self.name)
if block is None:
block = self
# Create new block so we can store context without thread-safety issues.
block = BlockNode(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)
context.pop()
return result
def super(self):
Variable | Value |
---|---|
push | <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]> |
block_context | <django.template.loader_tags.BlockContext object at 0x7f8c9411ae50> |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
block | <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]> |
self | <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]> |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = self.render_node(node, context)...
else:
bit = node
bits.append(force_unicode(bit))
return mark_safe(u''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
node | <Block Node: "base_content". Contents: []> |
bit | u'\n ' |
bits | [u'\n '] |
self | [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>] |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/debug.py
in render_node
def compile_function_error(self, token, e):
if not hasattr(e, 'django_template_source'):
e.django_template_source = token.source
class DebugNodeList(NodeList):
def render_node(self, node, context):
try:
return node.render(context)...
except Exception, e:
if not hasattr(e, 'django_template_source'):
e.django_template_source = node.source
raise
Variable | Value |
---|---|
node | <Block Node: "base_content". Contents: []> |
self | [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>] |
e | OSError(2, 'No such file or directory') |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/loader_tags.py
in render
push = block = block_context.pop(self.name)
if block is None:
block = self
# Create new block so we can store context without thread-safety issues.
block = BlockNode(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)
context.pop()
return result
def super(self):
Variable | Value |
---|---|
push | <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]> |
block_context | <django.template.loader_tags.BlockContext object at 0x7f8c9411ae50> |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
block | <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]> |
self | <Block Node: "base_content". Contents: []> |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = self.render_node(node, context)...
else:
bit = node
bits.append(force_unicode(bit))
return mark_safe(u''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
node | <Tag: placeholder> |
bit | u'\n' |
bits | [u'\n', u'\n\n<div>\n\n<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>\n<!-- ML 1.12 / Artikel / Large Rect Top (Blck. AB-Test) -->\n<ins class="adsbygoogle"\n style="display:inline-block;width:336px;height:280px"\n data-ad-client="ca-pub-4676353927388276"\n data-ad-slot="8213628777"></ins>\n<script>\n(adsbygoogle = window.adsbygoogle || []).push({});\n</script>\n\t\n\n</div>\n\n\n', u'\n'] |
self | [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>] |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/debug.py
in render_node
def compile_function_error(self, token, e):
if not hasattr(e, 'django_template_source'):
e.django_template_source = token.source
class DebugNodeList(NodeList):
def render_node(self, node, context):
try:
return node.render(context)...
except Exception, e:
if not hasattr(e, 'django_template_source'):
e.django_template_source = node.source
raise
Variable | Value |
---|---|
node | <Tag: placeholder> |
self | [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>] |
e | OSError(2, 'No such file or directory') |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/classytags/core.py
in render
"""
INTERNAL method to prepare rendering
Usually you should not override this method, but rather use render_tag.
"""
items = self.kwargs.items()
kwargs = dict([(key, value.resolve(context)) for key, value in items])
kwargs.update(self.blocks)
return self.render_tag(context, **kwargs)...
def render_tag(self, context, **kwargs):
"""
The method you should override in your custom tags
"""
raise NotImplementedError
Variable | Value |
---|---|
key | 'extra_bits' |
items | [('name', <classytags.values.StringValue object at 0x7f8c94c60150>), ('extra_bits', <TemplateConstant: []>)] |
self | <Tag: placeholder> |
value | <TemplateConstant: []> |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
kwargs | {'extra_bits': [], 'name': u'article'} |
/home/mathlex/live/src/cms/templatetags/cms_tags.py
in render_tag
page = request.current_page
if not page or page == 'dummy':
if nodelist:
return nodelist.render(context)
return ''
content = get_placeholder_content(context, request, page, name, inherit)...
if not content and nodelist:
return nodelist.render(context)
return content
def get_name(self):
return self.kwargs['name'].var.value.strip('"').strip("'")
Variable | Value |
---|---|
nodelist | None |
name | u'article' |
self | <Tag: placeholder> |
request | "<WSGIRequest\npath:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html,\nGET:<QueryDict: {}>,\nPOST:<QueryDict: {}>,\nCOOKIES:{},\nMETA:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV',\n 'CSRF_COOKIE_USED': True,\n 'HTTP_ACCEPT': '*/*',\n 'HTTP_CONNECTION': 'close',\n 'HTTP_HOST': 'mathe-lexikon.at',\n 'HTTP_USER_AGENT': 'claudebot',\n 'HTTP_X_FORWARDED_FOR': '44.222.161.54',\n 'HTTP_X_FORWARDED_PROTO': 'https',\n 'HTTP_X_REAL_IP': '44.222.161.54',\n 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html',\n 'QUERY_STRING': '',\n 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html',\n 'REMOTE_ADDR': '44.222.161.54',\n 'REMOTE_PORT': '80',\n 'REQUEST_METHOD': 'GET',\n 'SCRIPT_NAME': u'',\n 'SERVER_NAME': 'mathe-lexikon.at',\n 'SERVER_PORT': '80',\n 'SERVER_PROTOCOL': 'HTTP/1.0',\n 'SERVER_SOFTWARE': 'gunicorn/0.14.6',\n 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>,\n 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>,\n 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>,\n 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>,\n 'wsgi.multiprocess': True,\n 'wsgi.multithread': False,\n 'wsgi.run_once': False,\n 'wsgi.url_scheme': 'http',\n 'wsgi.version': (1, 0)}>" |
inherit | False |
width | None |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
page | <Page: Umfang Dreieck> |
extra_bits | [] |
/home/mathlex/live/src/cms/templatetags/cms_tags.py
in get_placeholder_content
pages = chain([current_page], current_page.get_cached_ancestors(ascending=True))
for page in pages:
placeholder = _get_placeholder(current_page, page, context, name)
if placeholder is None:
continue
if not get_plugins(request, placeholder):
continue
content = render_placeholder(placeholder, context, name)...
if content:
return content
# if we reach this point, we have an empty or non-existant placeholder
# call _get_placeholder again to get the placeholder properly rendered
# in frontend editing
placeholder = _get_placeholder(current_page, current_page, context, name)
Variable | Value |
---|---|
name | u'article' |
current_page | <Page: Umfang Dreieck> |
request | "<WSGIRequest\npath:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html,\nGET:<QueryDict: {}>,\nPOST:<QueryDict: {}>,\nCOOKIES:{},\nMETA:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV',\n 'CSRF_COOKIE_USED': True,\n 'HTTP_ACCEPT': '*/*',\n 'HTTP_CONNECTION': 'close',\n 'HTTP_HOST': 'mathe-lexikon.at',\n 'HTTP_USER_AGENT': 'claudebot',\n 'HTTP_X_FORWARDED_FOR': '44.222.161.54',\n 'HTTP_X_FORWARDED_PROTO': 'https',\n 'HTTP_X_REAL_IP': '44.222.161.54',\n 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html',\n 'QUERY_STRING': '',\n 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html',\n 'REMOTE_ADDR': '44.222.161.54',\n 'REMOTE_PORT': '80',\n 'REQUEST_METHOD': 'GET',\n 'SCRIPT_NAME': u'',\n 'SERVER_NAME': 'mathe-lexikon.at',\n 'SERVER_PORT': '80',\n 'SERVER_PROTOCOL': 'HTTP/1.0',\n 'SERVER_SOFTWARE': 'gunicorn/0.14.6',\n 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>,\n 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>,\n 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>,\n 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>,\n 'wsgi.multiprocess': True,\n 'wsgi.multithread': False,\n 'wsgi.run_once': False,\n 'wsgi.url_scheme': 'http',\n 'wsgi.version': (1, 0)}>" |
inherit | False |
pages | [<Page: Umfang Dreieck>] |
edit_mode | False |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
placeholder | <Placeholder: article> |
page | <Page: Umfang Dreieck> |
/home/mathlex/live/src/cms/plugin_rendering.py
in render_placeholder
edit = True
if edit:
from cms.middleware.toolbar import toolbar_plugin_processor
processors = (toolbar_plugin_processor,)
else:
processors = None
content.extend(render_plugins(plugins, context, placeholder, processors))...
content = "".join(content)
if edit:
content = render_placeholder_toolbar(placeholder, context, content, name_fallback)
context.pop()
return content
Variable | Value |
---|---|
slot | u'article' |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
name_fallback | u'article' |
processors | None |
get_plugins | <function get_plugins at 0x7f8c988ae6d0> |
plugin | <ToolPlugin: 30752> |
edit | False |
request | "<WSGIRequest\npath:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html,\nGET:<QueryDict: {}>,\nPOST:<QueryDict: {}>,\nCOOKIES:{},\nMETA:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV',\n 'CSRF_COOKIE_USED': True,\n 'HTTP_ACCEPT': '*/*',\n 'HTTP_CONNECTION': 'close',\n 'HTTP_HOST': 'mathe-lexikon.at',\n 'HTTP_USER_AGENT': 'claudebot',\n 'HTTP_X_FORWARDED_FOR': '44.222.161.54',\n 'HTTP_X_FORWARDED_PROTO': 'https',\n 'HTTP_X_REAL_IP': '44.222.161.54',\n 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html',\n 'QUERY_STRING': '',\n 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html',\n 'REMOTE_ADDR': '44.222.161.54',\n 'REMOTE_PORT': '80',\n 'REQUEST_METHOD': 'GET',\n 'SCRIPT_NAME': u'',\n 'SERVER_NAME': 'mathe-lexikon.at',\n 'SERVER_PORT': '80',\n 'SERVER_PROTOCOL': 'HTTP/1.0',\n 'SERVER_SOFTWARE': 'gunicorn/0.14.6',\n 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>,\n 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>,\n 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>,\n 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>,\n 'wsgi.multiprocess': True,\n 'wsgi.multithread': False,\n 'wsgi.run_once': False,\n 'wsgi.url_scheme': 'http',\n 'wsgi.version': (1, 0)}>" |
context_to_copy | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
content | [] |
template | u'template_tool.html' |
plugins | [<AdvancedPicture: Bild (250x0, 1 Spalten, right_inline)>, <Text: Umfangberechnung DreieckDer Um...>, <FormulaPlugin: \begin{align} u & = a + b + c \\ u & = 5 + 8 + 10 \\ u & = 23 \text{cm} \\ \end{align}>, <Text: ...>, <FormulaPlugin: {u=a+b+c}>, <Text: Umfang online ermitteln...>, <ToolPlugin: 30752>] |
extra_context | {} |
placeholder | <Placeholder: article> |
page | <Page: Umfang Dreieck> |
toolbar | <cms.cms_toolbar.CMSToolbar object at 0x7f8c94824fd0> |
/home/mathlex/live/src/cms/plugin_rendering.py
in render_plugins
"""
out = []
total = len(plugins)
for index, plugin in enumerate(plugins):
plugin._render_meta.total = total
plugin._render_meta.index = index
context.push()
out.append(plugin.render_plugin(context, placeholder, processors=processors))...
context.pop()
return out
def render_placeholder(placeholder, context_to_copy, name_fallback="Placeholder"):
"""
Renders plugins for a placeholder on the given page using shallow copies of the
Variable | Value |
---|---|
index | 6 |
processors | None |
plugin | <ToolPlugin: 30752> |
context | [{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}] |
plugins | [<AdvancedPicture: Bild (250x0, 1 Spalten, right_inline)>, <Text: Umfangberechnung DreieckDer Um...>, <FormulaPlugin: \begin{align} u & = a + b + c \\ u & = 5 + 8 + 10 \\ u & = 23 \text{cm} \\ \end{align}>, <Text: ...>, <FormulaPlugin: {u=a+b+c}>, <Text: Umfang online ermitteln...>, <ToolPlugin: 30752>] |
total | 7 |
placeholder | <Placeholder: article> |
out | [u'\n<div class="img right_inline" style="width: 250px;">\n<div style="width: 250px;"><a class="fancybox" rel="fancybox30740" title="" href="/media/advanced_pictures/DreieckUmfang.jpg">\n\n\n\n <img src="/media/cache/83/60/8360cfa246773cf98f12eb865ca8fd6f.jpg" width="250" height="124" alt="" />\n\n\n\n </a>\n </div>\n</div>\n', u'<h2>Umfangberechnung Dreieck</h2><p>Der Umfang des Dreiecks ergibt sich aus der Summe der drei Seitenl\xe4ngen.</p>', u'<p class="mit-formel">\n\n \n <img src="/media/formulas/45fb05d5390d8597ff277388ec71598f.png" alt="\\begin{align}\r\nu & = a + b + c \\\\\r\nu & = 5 + 8 + 10 \\\\\r\nu & = 23 \\text{cm} \\\\\r\n\\end{align}" title="\\begin{align}\r\nu & = a + b + c \\\\\r\nu & = 5 + 8 + 10 \\\\\r\nu & = 23 \\text{cm} \\\\\r\n\\end{align}" />\n \n \n\n</p>\n', u'<br />', u'\n<div class="formel3">\n\n\n \n <img src="/media/formulas/b9a1559e10b525f4efdbebe2cb75c965.png" alt="{u=a+b+c}" title="{u=a+b+c}" /><br />Umfang = Seite a + Seite b + Seite c\n \n\n</div>\n', u'<h3>Umfang online ermitteln</h3>'] |
/home/mathlex/live/src/cms/models/pluginmodel.py
in render_plugin
context = plugin.render(context, instance, placeholder_slot)
if plugin.render_plugin:
template = hasattr(instance, 'render_template') and instance.render_template or plugin.render_template
if not template:
raise ValidationError("plugin has no render_template: %s" % plugin.__class__)
else:
template = None
return render_plugin(context, instance, placeholder, template, processors, context.current_app)...
return ""
def get_media_path(self, filename):
pages = self.placeholder.page_set.all()
if pages.count():
return pages[0].get_media_path(filename)
Variable | Value |
---|---|
context | [[{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}], {'plugin_index': 6, 'plugin': {'revcounter0': 0, 'id_attr': 'plugin_5310_30752', 'revcounter': 1, 'last': True, 'instance': <ToolPlugin: 30752>, 'total': 7, 'counter': 7, 'counter0': 6, 'first': False}}, {'option_groups': [<mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e9d0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517ead0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e7d0>], 'description': u' Man kennt von einem <strong>allgemeinen Dreieck</strong> die <strong>Seiten a, b, c</strong>. Gesucht ist der Fl\xe4cheninhalt <strong>A</strong>.', 'settings': [['calculation', u'flaeche'], ['triangle', u'allgemein'], ['params', u'A_b']], 'current_path': u'umfang-allgemein-u', 'entity': <Tool: Aktiv: Dreieck Onlinerechner: Umfang, Flächeninhalt, Höhen, Inkreis und Umkreis>, 'params': OrderedDict([('a', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116590>), ('b', <mathtools.tools.abstracts.ToolParam object at 0x7f8c951165d0>), ('c', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116610>)]), 'result': <mathtools.calculators.ToolResult object at 0x7f8c9517ea90>, 'template': 'mathtools/tools/math/triangle.html'}, {}] |
processors | None |
plugin | Tool |
admin | False |
self | <ToolPlugin: 30752> |
current_app | None |
instance | <ToolPlugin: 30752> |
template | 'mathtools/plugin.html' |
placeholder | <Placeholder: article> |
placeholder_slot | u'article' |
/home/mathlex/live/src/cms/plugin_rendering.py
in render_plugin
"""
Renders a single plugin and applies the post processors to it's rendered
content.
"""
if not processors:
processors = []
if isinstance(template, basestring):
content = render_to_string(template, context_instance=context)...
elif isinstance(template, Template):
content = template.render(context)
else:
content = ''
for processor in iterload_objects(get_cms_setting('PLUGIN_PROCESSORS')):
content = processor(instance, placeholder, content, context)
Variable | Value |
---|---|
processors | [] |
current_app | None |
instance | <ToolPlugin: 30752> |
context | [[{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}], {'plugin_index': 6, 'plugin': {'revcounter0': 0, 'id_attr': 'plugin_5310_30752', 'revcounter': 1, 'last': True, 'instance': <ToolPlugin: 30752>, 'total': 7, 'counter': 7, 'counter0': 6, 'first': False}}, {'option_groups': [<mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e9d0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517ead0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e7d0>], 'description': u' Man kennt von einem <strong>allgemeinen Dreieck</strong> die <strong>Seiten a, b, c</strong>. Gesucht ist der Fl\xe4cheninhalt <strong>A</strong>.', 'settings': [['calculation', u'flaeche'], ['triangle', u'allgemein'], ['params', u'A_b']], 'current_path': u'umfang-allgemein-u', 'entity': <Tool: Aktiv: Dreieck Onlinerechner: Umfang, Flächeninhalt, Höhen, Inkreis und Umkreis>, 'params': OrderedDict([('a', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116590>), ('b', <mathtools.tools.abstracts.ToolParam object at 0x7f8c951165d0>), ('c', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116610>)]), 'result': <mathtools.calculators.ToolResult object at 0x7f8c9517ea90>, 'template': 'mathtools/tools/math/triangle.html'}, {}] |
placeholder | <Placeholder: article> |
template | 'mathtools/plugin.html' |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/loader.py
in render_to_string
t = get_template(template_name)
if not context_instance:
return t.render(Context(dictionary))
# Add the dictionary to the context stack, ensuring it gets removed again
# to keep the context_instance in the same state it started in.
context_instance.update(dictionary)
try:
return t.render(context_instance)...
finally:
context_instance.pop()
def select_template(template_name_list):
"Given a list of template names, returns the first that can be loaded."
if not template_name_list:
Variable | Value |
---|---|
template_name | 'mathtools/plugin.html' |
t | <django.template.base.Template object at 0x7f8c9517e690> |
dictionary | {} |
context_instance | [[{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}], {'plugin_index': 6, 'plugin': {'revcounter0': 0, 'id_attr': 'plugin_5310_30752', 'revcounter': 1, 'last': True, 'instance': <ToolPlugin: 30752>, 'total': 7, 'counter': 7, 'counter0': 6, 'first': False}}, {'option_groups': [<mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e9d0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517ead0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e7d0>], 'description': u' Man kennt von einem <strong>allgemeinen Dreieck</strong> die <strong>Seiten a, b, c</strong>. Gesucht ist der Fl\xe4cheninhalt <strong>A</strong>.', 'settings': [['calculation', u'flaeche'], ['triangle', u'allgemein'], ['params', u'A_b']], 'current_path': u'umfang-allgemein-u', 'entity': <Tool: Aktiv: Dreieck Onlinerechner: Umfang, Flächeninhalt, Höhen, Inkreis und Umkreis>, 'params': OrderedDict([('a', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116590>), ('b', <mathtools.tools.abstracts.ToolParam object at 0x7f8c951165d0>), ('c', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116610>)]), 'result': <mathtools.calculators.ToolResult object at 0x7f8c9517ea90>, 'template': 'mathtools/tools/math/triangle.html'}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in render
def _render(self, context):
return self.nodelist.render(context)
def render(self, context):
"Display stage -- can be called many times"
context.render_context.push()
try:
return self._render(context)...
finally:
context.render_context.pop()
def compile_string(template_string, origin):
"Compiles template_string into NodeList ready for rendering"
if settings.TEMPLATE_DEBUG:
Variable | Value |
---|---|
self | <django.template.base.Template object at 0x7f8c9517e690> |
context | [[{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}], {'plugin_index': 6, 'plugin': {'revcounter0': 0, 'id_attr': 'plugin_5310_30752', 'revcounter': 1, 'last': True, 'instance': <ToolPlugin: 30752>, 'total': 7, 'counter': 7, 'counter0': 6, 'first': False}}, {'option_groups': [<mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e9d0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517ead0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e7d0>], 'description': u' Man kennt von einem <strong>allgemeinen Dreieck</strong> die <strong>Seiten a, b, c</strong>. Gesucht ist der Fl\xe4cheninhalt <strong>A</strong>.', 'settings': [['calculation', u'flaeche'], ['triangle', u'allgemein'], ['params', u'A_b']], 'current_path': u'umfang-allgemein-u', 'entity': <Tool: Aktiv: Dreieck Onlinerechner: Umfang, Flächeninhalt, Höhen, Inkreis und Umkreis>, 'params': OrderedDict([('a', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116590>), ('b', <mathtools.tools.abstracts.ToolParam object at 0x7f8c951165d0>), ('c', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116610>)]), 'result': <mathtools.calculators.ToolResult object at 0x7f8c9517ea90>, 'template': 'mathtools/tools/math/triangle.html'}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in _render
def __iter__(self):
for node in self.nodelist:
for subnode in node:
yield subnode
def _render(self, context):
return self.nodelist.render(context)...
def render(self, context):
"Display stage -- can be called many times"
context.render_context.push()
try:
return self._render(context)
Variable | Value |
---|---|
self | <django.template.base.Template object at 0x7f8c9517e690> |
context | [[{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}], {'plugin_index': 6, 'plugin': {'revcounter0': 0, 'id_attr': 'plugin_5310_30752', 'revcounter': 1, 'last': True, 'instance': <ToolPlugin: 30752>, 'total': 7, 'counter': 7, 'counter0': 6, 'first': False}}, {'option_groups': [<mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e9d0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517ead0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e7d0>], 'description': u' Man kennt von einem <strong>allgemeinen Dreieck</strong> die <strong>Seiten a, b, c</strong>. Gesucht ist der Fl\xe4cheninhalt <strong>A</strong>.', 'settings': [['calculation', u'flaeche'], ['triangle', u'allgemein'], ['params', u'A_b']], 'current_path': u'umfang-allgemein-u', 'entity': <Tool: Aktiv: Dreieck Onlinerechner: Umfang, Flächeninhalt, Höhen, Inkreis und Umkreis>, 'params': OrderedDict([('a', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116590>), ('b', <mathtools.tools.abstracts.ToolParam object at 0x7f8c951165d0>), ('c', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116610>)]), 'result': <mathtools.calculators.ToolResult object at 0x7f8c9517ea90>, 'template': 'mathtools/tools/math/triangle.html'}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = self.render_node(node, context)...
else:
bit = node
bits.append(force_unicode(bit))
return mark_safe(u''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
node | <IfNode> |
bit | u'\n\n' |
bits | [u'', u'\n\n<div id="tool">\n<form method="POST" action="', u'/tools/tool/dreieck-onlinerechner/', u'">\n ', u"<div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV' /></div>", u'\n\n', u'\n<div class="row-fluid">\n \n <div class="span4">\n <div class="btn-toolbar">\n <label>Was m\xf6chten Sie berechnen?</label>\n <div class="btn-group">\n <button class="btn dropdown-toggle" data-toggle="dropdown">\n Fl\xe4cheninhalt\n <span class="caret"></span>\n </button>\n <ul class="dropdown-menu">\n \n <li class="selected">\n <a href="/tools/tool/dreieck-onlinerechner/flaeche-allgemein-A_b/">Fl\xe4cheninhalt</a>\n </li>\n \n <li >\n <a href="/tools/tool/dreieck-onlinerechner/umfang-allgemein-A_b/">Umfang</a>\n </li>\n \n </ul>\n </div>\n </div>\n </div>\n \n <div class="span4">\n <div class="btn-toolbar">\n <label>Um welches Dreieck handelt es sich?</label>\n <div class="btn-group">\n <button class="btn dropdown-toggle" data-toggle="dropdown">\n Allgemeines Dreieck\n <span class="caret"></span>\n </button>\n <ul class="dropdown-menu">\n \n <li class="selected">\n <a href="/tools/tool/dreieck-onlinerechner/flaeche-allgemein-A_b/">Allgemeines Dreieck</a>\n </li>\n \n <li >\n <a href="/tools/tool/dreieck-onlinerechner/flaeche-rechtwinkelig-A_b/">Rechtwinkeliges Dreieck</a>\n </li>\n \n </ul>\n </div>\n </div>\n </div>\n \n <div class="span4">\n <div class="btn-toolbar">\n <label>Welcher Wert ist gesucht?</label>\n <div class="btn-group">\n <button class="btn dropdown-toggle" data-toggle="dropdown">\n Ges.: A / Geg.: a, b, c\n <span class="caret"></span>\n </button>\n <ul class="dropdown-menu">\n \n <li >\n <a href="/tools/tool/dreieck-onlinerechner/flaeche-allgemein-a_b_c/">Ges.: A / Geg.: a, b, c</a>\n </li>\n \n <li >\n <a href="/tools/tool/dreieck-onlinerechner/flaeche-allgemein-a_ha/">Ges.: A / Geg.: a, h<sub>a</sub></a>\n </li>\n \n <li >\n <a href="/tools/tool/dreieck-onlinerechner/flaeche-allgemein-b_hb/">Ges.: A / Geg.: b, h<sub>b</sub></a>\n </li>\n \n <li >\n <a href="/tools/tool/dreieck-onlinerechner/flaeche-allgemein-c_hc/">Ges.: A / Geg.: c, h<sub>c</sub></a>\n </li>\n \n </ul>\n </div>\n </div>\n </div>\n \n</div>\n', u'\n\n<div class="row-fluid">\n <div class="span6" id="tool-params">\n ', u'\n <div class="control-group">\n <label class="control-label">Seite a</label>\n <div class="controls">\n <div class="input-prepend input-append">\n <span class="add-on">a = </span><input type="text" class="input-medium" name="param_a" value="1,15">\n <div class="btn-group unit-select">\n <input type="hidden" name="unit_a" value="m" />\n <button class="btn dropdown-toggle" data-toggle="dropdown">\n <span class="selected-unit">m</span>\n <span class="caret"></span>\n </button>\n <ul class="dropdown-menu">\n \n <li><a href="#" data-unit="mm" title="milimetre">mm</a></li>\n \n <li><a href="#" data-unit="cm" title="centimetre">cm</a></li>\n \n <li><a href="#" data-unit="dm" title="decimetre">dm</a></li>\n \n <li><a href="#" data-unit="m" title="metre">m</a></li>\n \n <li><a href="#" data-unit="km" title="kilometre">km</a></li>\n \n </ul>\n </div>\n </div>\n </div>\n </div>\n \n <div class="control-group">\n <label class="control-label">Seite b</label>\n <div class="controls">\n <div class="input-prepend input-append">\n <span class="add-on">b = </span><input type="text" class="input-medium" name="param_b" value="1,56">\n <div class="btn-group unit-select">\n <input type="hidden" name="unit_b" value="m" />\n <button class="btn dropdown-toggle" data-toggle="dropdown">\n <span class="selected-unit">m</span>\n <span class="caret"></span>\n </button>\n <ul class="dropdown-menu">\n \n <li><a href="#" data-unit="mm" title="milimetre">mm</a></li>\n \n <li><a href="#" data-unit="cm" title="centimetre">cm</a></li>\n \n <li><a href="#" data-unit="dm" title="decimetre">dm</a></li>\n \n <li><a href="#" data-unit="m" title="metre">m</a></li>\n \n <li><a href="#" data-unit="km" title="kilometre">km</a></li>\n \n </ul>\n </div>\n </div>\n </div>\n </div>\n \n <div class="control-group">\n <label class="control-label">Seite c</label>\n <div class="controls">\n <div class="input-prepend input-append">\n <span class="add-on">c = </span><input type="text" class="input-medium" name="param_c" value="1,25">\n <div class="btn-group unit-select">\n <input type="hidden" name="unit_c" value="m" />\n <button class="btn dropdown-toggle" data-toggle="dropdown">\n <span class="selected-unit">m</span>\n <span class="caret"></span>\n </button>\n <ul class="dropdown-menu">\n \n <li><a href="#" data-unit="mm" title="milimetre">mm</a></li>\n \n <li><a href="#" data-unit="cm" title="centimetre">cm</a></li>\n \n <li><a href="#" data-unit="dm" title="decimetre">dm</a></li>\n \n <li><a href="#" data-unit="m" title="metre">m</a></li>\n \n <li><a href="#" data-unit="km" title="kilometre">km</a></li>\n \n </ul>\n </div>\n </div>\n </div>\n </div>\n ', u'\n <div class="btn-group">\n <button type="submit" class="btn btn-large btn-primary">', u'Berechnen', u'</button>\n </div>\n </div>\n <div class="span6" id="tool-illustration">\n <canvas id="canvas1" style="width: 300px; height: 300px;"></canvas>\n </div>\n</div>\n\n\n', u'\n <div class="alert alert-block alert-success">\n <h2 class="alert-heading">Ergebnis:\n A = 0,709835502071 m\xb2</h2>\n <p>(Wert gerundet auf 4 Dezimalstellen: 0,7098 m\xb2)</p>\n </div>\n', u'\n\n'] |
self | [<django.template.defaulttags.LoadNode object at 0x7f8c95188d90>, <Text Node: ' <div id="tool"> <form m'>, <Variable Node: entity.get_absolute_url>, <Text Node: '"> '>, <django.template.defaulttags.CsrfTokenNode object at 0x7f8c9517e950>, <Text Node: ' '>, <IfNode>, <Text Node: ' <div class="row-fluid">'>, <For Node: for key, param in params.iteritems, tail_len: 17>, <Text Node: ' <div class="btn-gr'>, <django.templatetags.i18n.TranslateNode object at 0x7f8c95139e90>, <Text Node: '</button> </div> '>, <IfNode>, <Text Node: ' '>, <IfNode>, <Text Node: ' </form> </div> <script '>, <Variable Node: current_path>, <Text Node: '"; </script> '>] |
context | [[{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}], {'plugin_index': 6, 'plugin': {'revcounter0': 0, 'id_attr': 'plugin_5310_30752', 'revcounter': 1, 'last': True, 'instance': <ToolPlugin: 30752>, 'total': 7, 'counter': 7, 'counter0': 6, 'first': False}}, {'option_groups': [<mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e9d0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517ead0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e7d0>], 'description': u' Man kennt von einem <strong>allgemeinen Dreieck</strong> die <strong>Seiten a, b, c</strong>. Gesucht ist der Fl\xe4cheninhalt <strong>A</strong>.', 'settings': [['calculation', u'flaeche'], ['triangle', u'allgemein'], ['params', u'A_b']], 'current_path': u'umfang-allgemein-u', 'entity': <Tool: Aktiv: Dreieck Onlinerechner: Umfang, Flächeninhalt, Höhen, Inkreis und Umkreis>, 'params': OrderedDict([('a', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116590>), ('b', <mathtools.tools.abstracts.ToolParam object at 0x7f8c951165d0>), ('c', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116610>)]), 'result': <mathtools.calculators.ToolResult object at 0x7f8c9517ea90>, 'template': 'mathtools/tools/math/triangle.html'}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/debug.py
in render_node
def compile_function_error(self, token, e):
if not hasattr(e, 'django_template_source'):
e.django_template_source = token.source
class DebugNodeList(NodeList):
def render_node(self, node, context):
try:
return node.render(context)...
except Exception, e:
if not hasattr(e, 'django_template_source'):
e.django_template_source = node.source
raise
Variable | Value |
---|---|
node | <IfNode> |
self | [<django.template.defaulttags.LoadNode object at 0x7f8c95188d90>, <Text Node: ' <div id="tool"> <form m'>, <Variable Node: entity.get_absolute_url>, <Text Node: '"> '>, <django.template.defaulttags.CsrfTokenNode object at 0x7f8c9517e950>, <Text Node: ' '>, <IfNode>, <Text Node: ' <div class="row-fluid">'>, <For Node: for key, param in params.iteritems, tail_len: 17>, <Text Node: ' <div class="btn-gr'>, <django.templatetags.i18n.TranslateNode object at 0x7f8c95139e90>, <Text Node: '</button> </div> '>, <IfNode>, <Text Node: ' '>, <IfNode>, <Text Node: ' </form> </div> <script '>, <Variable Node: current_path>, <Text Node: '"; </script> '>] |
e | OSError(2, 'No such file or directory') |
context | [[{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}], {'plugin_index': 6, 'plugin': {'revcounter0': 0, 'id_attr': 'plugin_5310_30752', 'revcounter': 1, 'last': True, 'instance': <ToolPlugin: 30752>, 'total': 7, 'counter': 7, 'counter0': 6, 'first': False}}, {'option_groups': [<mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e9d0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517ead0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e7d0>], 'description': u' Man kennt von einem <strong>allgemeinen Dreieck</strong> die <strong>Seiten a, b, c</strong>. Gesucht ist der Fl\xe4cheninhalt <strong>A</strong>.', 'settings': [['calculation', u'flaeche'], ['triangle', u'allgemein'], ['params', u'A_b']], 'current_path': u'umfang-allgemein-u', 'entity': <Tool: Aktiv: Dreieck Onlinerechner: Umfang, Flächeninhalt, Höhen, Inkreis und Umkreis>, 'params': OrderedDict([('a', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116590>), ('b', <mathtools.tools.abstracts.ToolParam object at 0x7f8c951165d0>), ('c', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116610>)]), 'result': <mathtools.calculators.ToolResult object at 0x7f8c9517ea90>, 'template': 'mathtools/tools/math/triangle.html'}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/defaulttags.py
in render
match = condition.eval(context)
except VariableDoesNotExist:
match = None
else: # else clause
match = True
if match:
return nodelist.render(context)...
return ''
class RegroupNode(Node):
def __init__(self, target, expression, var_name):
self.target, self.expression = target, expression
Variable | Value |
---|---|
context | [[{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}], {'plugin_index': 6, 'plugin': {'revcounter0': 0, 'id_attr': 'plugin_5310_30752', 'revcounter': 1, 'last': True, 'instance': <ToolPlugin: 30752>, 'total': 7, 'counter': 7, 'counter0': 6, 'first': False}}, {'option_groups': [<mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e9d0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517ead0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e7d0>], 'description': u' Man kennt von einem <strong>allgemeinen Dreieck</strong> die <strong>Seiten a, b, c</strong>. Gesucht ist der Fl\xe4cheninhalt <strong>A</strong>.', 'settings': [['calculation', u'flaeche'], ['triangle', u'allgemein'], ['params', u'A_b']], 'current_path': u'umfang-allgemein-u', 'entity': <Tool: Aktiv: Dreieck Onlinerechner: Umfang, Flächeninhalt, Höhen, Inkreis und Umkreis>, 'params': OrderedDict([('a', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116590>), ('b', <mathtools.tools.abstracts.ToolParam object at 0x7f8c951165d0>), ('c', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116610>)]), 'result': <mathtools.calculators.ToolResult object at 0x7f8c9517ea90>, 'template': 'mathtools/tools/math/triangle.html'}, {}] |
self | <IfNode> |
nodelist | [<Text Node: ' <div class="alert alert-'>, <django.templatetags.i18n.TranslateNode object at 0x7f8c95178950>, <Text Node: ':</h3> '>, <For Node: for content_item in result.solution_process, tail_len: 3>, <Text Node: ' </div> '>] |
condition | (literal <django.template.base.FilterExpression object at 0x7f8c95188e90>) |
match | [<mathtools.calculators.ContentItem object at 0x7f8c97ebb7d0>, <mathtools.calculators.ContentItem object at 0x7f8c9411ae90>, <mathtools.calculators.ContentItem object at 0x7f8c94bbdd10>, <mathtools.calculators.ContentItem object at 0x7f8c94bbcf90>, <mathtools.calculators.ContentItem object at 0x7f8c94bbc710>, <mathtools.calculators.ContentItem object at 0x7f8c94bbcf10>, <mathtools.calculators.ContentItem object at 0x7f8c94bbc090>, <mathtools.calculators.ContentItem object at 0x7f8c94bbc5d0>, <mathtools.calculators.ContentItem object at 0x7f8c94bbc350>, <mathtools.calculators.ContentItem object at 0x7f8c94bbc650>, <mathtools.calculators.ContentItem object at 0x7f8c94bbc110>] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = self.render_node(node, context)...
else:
bit = node
bits.append(force_unicode(bit))
return mark_safe(u''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
node | <For Node: for content_item in result.solution_process, tail_len: 3> |
bit | u':</h3>\n ' |
bits | [u'\n<div class="alert alert-block alert-warning">\n <h3 class="alert-heading">', u'Der L\xf6sungsweg im Detail', u':</h3>\n '] |
self | [<Text Node: ' <div class="alert alert-'>, <django.templatetags.i18n.TranslateNode object at 0x7f8c95178950>, <Text Node: ':</h3> '>, <For Node: for content_item in result.solution_process, tail_len: 3>, <Text Node: ' </div> '>] |
context | [[{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}], {'plugin_index': 6, 'plugin': {'revcounter0': 0, 'id_attr': 'plugin_5310_30752', 'revcounter': 1, 'last': True, 'instance': <ToolPlugin: 30752>, 'total': 7, 'counter': 7, 'counter0': 6, 'first': False}}, {'option_groups': [<mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e9d0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517ead0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e7d0>], 'description': u' Man kennt von einem <strong>allgemeinen Dreieck</strong> die <strong>Seiten a, b, c</strong>. Gesucht ist der Fl\xe4cheninhalt <strong>A</strong>.', 'settings': [['calculation', u'flaeche'], ['triangle', u'allgemein'], ['params', u'A_b']], 'current_path': u'umfang-allgemein-u', 'entity': <Tool: Aktiv: Dreieck Onlinerechner: Umfang, Flächeninhalt, Höhen, Inkreis und Umkreis>, 'params': OrderedDict([('a', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116590>), ('b', <mathtools.tools.abstracts.ToolParam object at 0x7f8c951165d0>), ('c', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116610>)]), 'result': <mathtools.calculators.ToolResult object at 0x7f8c9517ea90>, 'template': 'mathtools/tools/math/triangle.html'}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/debug.py
in render_node
def compile_function_error(self, token, e):
if not hasattr(e, 'django_template_source'):
e.django_template_source = token.source
class DebugNodeList(NodeList):
def render_node(self, node, context):
try:
return node.render(context)...
except Exception, e:
if not hasattr(e, 'django_template_source'):
e.django_template_source = node.source
raise
Variable | Value |
---|---|
node | <For Node: for content_item in result.solution_process, tail_len: 3> |
self | [<Text Node: ' <div class="alert alert-'>, <django.templatetags.i18n.TranslateNode object at 0x7f8c95178950>, <Text Node: ':</h3> '>, <For Node: for content_item in result.solution_process, tail_len: 3>, <Text Node: ' </div> '>] |
e | OSError(2, 'No such file or directory') |
context | [[{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}], {'plugin_index': 6, 'plugin': {'revcounter0': 0, 'id_attr': 'plugin_5310_30752', 'revcounter': 1, 'last': True, 'instance': <ToolPlugin: 30752>, 'total': 7, 'counter': 7, 'counter0': 6, 'first': False}}, {'option_groups': [<mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e9d0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517ead0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e7d0>], 'description': u' Man kennt von einem <strong>allgemeinen Dreieck</strong> die <strong>Seiten a, b, c</strong>. Gesucht ist der Fl\xe4cheninhalt <strong>A</strong>.', 'settings': [['calculation', u'flaeche'], ['triangle', u'allgemein'], ['params', u'A_b']], 'current_path': u'umfang-allgemein-u', 'entity': <Tool: Aktiv: Dreieck Onlinerechner: Umfang, Flächeninhalt, Höhen, Inkreis und Umkreis>, 'params': OrderedDict([('a', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116590>), ('b', <mathtools.tools.abstracts.ToolParam object at 0x7f8c951165d0>), ('c', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116610>)]), 'result': <mathtools.calculators.ToolResult object at 0x7f8c9517ea90>, 'template': 'mathtools/tools/math/triangle.html'}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/defaulttags.py
in render
else:
context[self.loopvars[0]] = item
# In TEMPLATE_DEBUG mode provide source of the node which
# actually raised the exception
if settings.TEMPLATE_DEBUG:
for node in self.nodelist_loop:
try:
nodelist.append(node.render(context))...
except Exception, e:
if not hasattr(e, 'django_template_source'):
e.django_template_source = node.source
raise
else:
for node in self.nodelist_loop:
Variable | Value |
---|---|
node | <Variable Node: content_item.render|safe> |
parentloop | {} |
pop_context | False |
e | OSError(2, 'No such file or directory') |
i | 9 |
loop_dict | {'counter': 10, 'counter0': 9, 'first': False, 'last': False, 'parentloop': {}, 'revcounter': 2, 'revcounter0': 1} |
self | <For Node: for content_item in result.solution_process, tail_len: 3> |
len_values | 11 |
item | <mathtools.calculators.ContentItem object at 0x7f8c94bbc650> |
values | [<mathtools.calculators.ContentItem object at 0x7f8c97ebb7d0>, <mathtools.calculators.ContentItem object at 0x7f8c9411ae90>, <mathtools.calculators.ContentItem object at 0x7f8c94bbdd10>, <mathtools.calculators.ContentItem object at 0x7f8c94bbcf90>, <mathtools.calculators.ContentItem object at 0x7f8c94bbc710>, <mathtools.calculators.ContentItem object at 0x7f8c94bbcf10>, <mathtools.calculators.ContentItem object at 0x7f8c94bbc090>, <mathtools.calculators.ContentItem object at 0x7f8c94bbc5d0>, <mathtools.calculators.ContentItem object at 0x7f8c94bbc350>, <mathtools.calculators.ContentItem object at 0x7f8c94bbc650>, <mathtools.calculators.ContentItem object at 0x7f8c94bbc110>] |
context | [[{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}], {'plugin_index': 6, 'plugin': {'revcounter0': 0, 'id_attr': 'plugin_5310_30752', 'revcounter': 1, 'last': True, 'instance': <ToolPlugin: 30752>, 'total': 7, 'counter': 7, 'counter0': 6, 'first': False}}, {'option_groups': [<mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e9d0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517ead0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e7d0>], 'description': u' Man kennt von einem <strong>allgemeinen Dreieck</strong> die <strong>Seiten a, b, c</strong>. Gesucht ist der Fl\xe4cheninhalt <strong>A</strong>.', 'settings': [['calculation', u'flaeche'], ['triangle', u'allgemein'], ['params', u'A_b']], 'current_path': u'umfang-allgemein-u', 'entity': <Tool: Aktiv: Dreieck Onlinerechner: Umfang, Flächeninhalt, Höhen, Inkreis und Umkreis>, 'params': OrderedDict([('a', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116590>), ('b', <mathtools.tools.abstracts.ToolParam object at 0x7f8c951165d0>), ('c', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116610>)]), 'result': <mathtools.calculators.ToolResult object at 0x7f8c9517ea90>, 'template': 'mathtools/tools/math/triangle.html'}, {}] |
nodelist | [u'\n ', u'<a class="pull-right btn btn-small" href="/grundlagen/masseinheit/laengenmass/umrechnung-laengenmass.html">Umrechnung L\xe4ngenma\xdf</a><h4>Schritt 1</h4>', u'\n ', u'\n ', u'<p>Alle Angaben in gleiche Einheiten umwandeln</p>', u'\n ', u'\n ', u'<p><img src="/media/formulas/temp/7afa11a2f0f15fb7be405ca1f3d7013e.png" alt="a = 1.15\\ \\text{m} = 1.15\\ \\text{m}" /></p>', u'\n ', u'\n ', u'<p><img src="/media/formulas/temp/7f0b8101e4e1c3543a61b392e4f46deb.png" alt="b = 1.56\\ \\text{m} = 1.56\\ \\text{m}" /></p>', u'\n ', u'\n ', u'<p><img src="/media/formulas/temp/7b1bf37b92947c5aede06e360f0f70d1.png" alt="c = 1.25\\ \\text{m} = 1.25\\ \\text{m}" /></p>', u'\n ', u'\n ', u'<h4>Schritt 2</h4>', u'\n ', u'\n ', u'<p>Wenn drei Seiten eines Dreiecks gegeben sind, gibt es eine spezielle Formel, um den Fl\xe4cheninhalt zu berechnen:</p>', u'\n ', u'\n ', u'<p><img src="/media/formulas/temp/c0bc4fb469f99b57b6a0e0fa1ee91e7a.png" alt="A = \\frac{\\sqrt{ (a + b + c) \\cdot (a + b - c) \\cdot (b + c - a) \\cdot (c + a - b) }}{4}" /></p>', u'\n ', u'\n ', u'<p>Durch Einsetzen erh\xe4lt man:</p>', u'\n ', u'\n '] |
unpack | False |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/debug.py
in render
e.django_template_source = node.source
raise
class DebugVariableNode(VariableNode):
def render(self, context):
try:
output = self.filter_expression.resolve(context)...
output = localtime(output, use_tz=context.use_tz)
output = localize(output, use_l10n=context.use_l10n)
output = force_unicode(output)
except UnicodeDecodeError:
return ''
except Exception, e:
Variable | Value |
---|---|
self | <Variable Node: content_item.render|safe> |
e | OSError(2, 'No such file or directory') |
context | [[{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}], {'plugin_index': 6, 'plugin': {'revcounter0': 0, 'id_attr': 'plugin_5310_30752', 'revcounter': 1, 'last': True, 'instance': <ToolPlugin: 30752>, 'total': 7, 'counter': 7, 'counter0': 6, 'first': False}}, {'option_groups': [<mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e9d0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517ead0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e7d0>], 'description': u' Man kennt von einem <strong>allgemeinen Dreieck</strong> die <strong>Seiten a, b, c</strong>. Gesucht ist der Fl\xe4cheninhalt <strong>A</strong>.', 'settings': [['calculation', u'flaeche'], ['triangle', u'allgemein'], ['params', u'A_b']], 'current_path': u'umfang-allgemein-u', 'entity': <Tool: Aktiv: Dreieck Onlinerechner: Umfang, Flächeninhalt, Höhen, Inkreis und Umkreis>, 'params': OrderedDict([('a', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116590>), ('b', <mathtools.tools.abstracts.ToolParam object at 0x7f8c951165d0>), ('c', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116610>)]), 'result': <mathtools.calculators.ToolResult object at 0x7f8c9517ea90>, 'template': 'mathtools/tools/math/triangle.html'}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in resolve
self.filters = filters
self.var = var_obj
def resolve(self, context, ignore_failures=False):
if isinstance(self.var, Variable):
try:
obj = self.var.resolve(context)...
except VariableDoesNotExist:
if ignore_failures:
obj = None
else:
if settings.TEMPLATE_STRING_IF_INVALID:
global invalid_var_format_string
Variable | Value |
---|---|
self | <django.template.base.FilterExpression object at 0x7f8c95188b50> |
ignore_failures | False |
context | [[{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}], {'plugin_index': 6, 'plugin': {'revcounter0': 0, 'id_attr': 'plugin_5310_30752', 'revcounter': 1, 'last': True, 'instance': <ToolPlugin: 30752>, 'total': 7, 'counter': 7, 'counter0': 6, 'first': False}}, {'option_groups': [<mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e9d0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517ead0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e7d0>], 'description': u' Man kennt von einem <strong>allgemeinen Dreieck</strong> die <strong>Seiten a, b, c</strong>. Gesucht ist der Fl\xe4cheninhalt <strong>A</strong>.', 'settings': [['calculation', u'flaeche'], ['triangle', u'allgemein'], ['params', u'A_b']], 'current_path': u'umfang-allgemein-u', 'entity': <Tool: Aktiv: Dreieck Onlinerechner: Umfang, Flächeninhalt, Höhen, Inkreis und Umkreis>, 'params': OrderedDict([('a', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116590>), ('b', <mathtools.tools.abstracts.ToolParam object at 0x7f8c951165d0>), ('c', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116610>)]), 'result': <mathtools.calculators.ToolResult object at 0x7f8c9517ea90>, 'template': 'mathtools/tools/math/triangle.html'}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in resolve
var)
self.lookups = tuple(var.split(VARIABLE_ATTRIBUTE_SEPARATOR))
def resolve(self, context):
"""Resolve this variable against a given context."""
if self.lookups is not None:
# We're dealing with a variable that needs to be resolved
value = self._resolve_lookup(context)...
else:
# We're dealing with a literal, so it's already been "resolved"
value = self.literal
if self.translate:
if self.message_context:
return pgettext_lazy(self.message_context, value)
Variable | Value |
---|---|
self | <Variable: u'content_item.render'> |
context | [[{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}], {'plugin_index': 6, 'plugin': {'revcounter0': 0, 'id_attr': 'plugin_5310_30752', 'revcounter': 1, 'last': True, 'instance': <ToolPlugin: 30752>, 'total': 7, 'counter': 7, 'counter0': 6, 'first': False}}, {'option_groups': [<mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e9d0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517ead0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e7d0>], 'description': u' Man kennt von einem <strong>allgemeinen Dreieck</strong> die <strong>Seiten a, b, c</strong>. Gesucht ist der Fl\xe4cheninhalt <strong>A</strong>.', 'settings': [['calculation', u'flaeche'], ['triangle', u'allgemein'], ['params', u'A_b']], 'current_path': u'umfang-allgemein-u', 'entity': <Tool: Aktiv: Dreieck Onlinerechner: Umfang, Flächeninhalt, Höhen, Inkreis und Umkreis>, 'params': OrderedDict([('a', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116590>), ('b', <mathtools.tools.abstracts.ToolParam object at 0x7f8c951165d0>), ('c', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116610>)]), 'result': <mathtools.calculators.ToolResult object at 0x7f8c9517ea90>, 'template': 'mathtools/tools/math/triangle.html'}, {}] |
/home/mathlex/.virtualenvs/django13html/lib/python2.7/site-packages/django/template/base.py
in _resolve_lookup
if callable(current):
if getattr(current, 'do_not_call_in_templates', False):
pass
elif getattr(current, 'alters_data', False):
current = settings.TEMPLATE_STRING_IF_INVALID
else:
try: # method call (assuming no args required)
current = current()...
except TypeError: # arguments *were* required
# GOTCHA: This will also catch any TypeError
# raised in the function itself.
current = settings.TEMPLATE_STRING_IF_INVALID # invalid method call
except Exception, e:
if getattr(e, 'silent_variable_failure', False):
Variable | Value |
---|---|
current | <bound method ContentItem.render of <mathtools.calculators.ContentItem object at 0x7f8c94bbc650>> |
bit | u'render' |
e | OSError(2, 'No such file or directory') |
self | <Variable: u'content_item.render'> |
context | [[{}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c94853450>}, {'csrf_token': <django.utils.functional.__proxy__ object at 0x7f8c95431310>}, {'perms': <django.contrib.auth.context_processors.PermWrapper object at 0x7f8c94853f50>, 'user': <django.utils.functional.SimpleLazyObject object at 0x7f8c94853390>}, {'LANGUAGES': [('de-at', 'de')], 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de-at'}, {'request': <WSGIRequest path:/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'CSRF_COOKIE': 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV', 'CSRF_COOKIE_USED': True, 'HTTP_ACCEPT': '*/*', 'HTTP_CONNECTION': 'close', 'HTTP_HOST': 'mathe-lexikon.at', 'HTTP_USER_AGENT': 'claudebot', 'HTTP_X_FORWARDED_FOR': '44.222.161.54', 'HTTP_X_FORWARDED_PROTO': 'https', 'HTTP_X_REAL_IP': '44.222.161.54', 'PATH_INFO': u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'QUERY_STRING': '', 'RAW_URI': '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html', 'REMOTE_ADDR': '44.222.161.54', 'REMOTE_PORT': '80', 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': u'', 'SERVER_NAME': 'mathe-lexikon.at', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SOFTWARE': 'gunicorn/0.14.6', 'gunicorn.socket': <socket._socketobject object at 0x7f8c94e56f30>, 'wsgi.errors': <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810>, 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f8c97f33de0>, 'wsgi.input': <gunicorn.http.body.Body object at 0x7f8c94824710>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>}, {'MEDIA_URL': '/media/'}, {'STATIC_URL': '/static/'}, {'CMS_MEDIA_URL': '/media/cms/'}, {'SEKIZAI_CONTENT_HOLDER': {}}, {'module_video': False, 'show_ads': True}, {}, {}, {'related_worksheets': [<Worksheet: Quadrat - Rechteck - rechtwinkeliges Dreieck>, <Worksheet: Umfangberechnung bei Rechteck und Quadrat>, <Worksheet: Rechteck und Quadrat - zusammengesetzte Flächen>, <Worksheet: Berechnungen in Rauten>, <Worksheet: Berechnungen im Parallelogramm und Trapez>]}, {'lang': 'de-at', 'related_videos': [<Video: Mathematik - Das Pascalsche Dreieck>, <Video: Dreieck>, <Video: Fläche Umfang>, <Video: Höhe in einem gleichschenkligen Dreieck berechnen>, <Video: Fläche eines Dreiecks>], 'current_page': <Page: Umfang Dreieck>, 'has_change_permissions': False, 'has_view_permissions': True}, {}, {'block': <Block Node: "mainmenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "submenu". Contents: [<Text Node: ' '>, <Tag: show_menu>, <Text Node: ' '>]>}, {'block': <Block Node: "breadcrumb". Contents: [<Tag: show_breadcrumb>]>}, {'block': <Block Node: "whole_content". Contents: [<Text Node: ' '>, <Block Node: "base_content". Contents: []>, <Text Node: ' '>, <Block Node: "rectangle_bottom". Contents: [<Text Node: '<div id="a2c" class="clea'>, <django.template.loader_tags.ConstantIncludeNode object at 0x7f8c9496b510>, <Text Node: '</div> '>]>, <Text Node: ' '>, <Block Node: "user_toolbar". Contents: [<WithNode>]>, <Text Node: ' '>, <Block Node: "bottom_content". Contents: []>, <Text Node: ' '>]>}, {'block': <Block Node: "base_content". Contents: [<Text Node: ' '>, <IfNode>, <Text Node: ' '>, <Tag: placeholder>, <Text Node: ' '>]>}, {}], {'plugin_index': 6, 'plugin': {'revcounter0': 0, 'id_attr': 'plugin_5310_30752', 'revcounter': 1, 'last': True, 'instance': <ToolPlugin: 30752>, 'total': 7, 'counter': 7, 'counter0': 6, 'first': False}}, {'option_groups': [<mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e9d0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517ead0>, <mathtools.tools.abstracts.ToolOptionGroup object at 0x7f8c9517e7d0>], 'description': u' Man kennt von einem <strong>allgemeinen Dreieck</strong> die <strong>Seiten a, b, c</strong>. Gesucht ist der Fl\xe4cheninhalt <strong>A</strong>.', 'settings': [['calculation', u'flaeche'], ['triangle', u'allgemein'], ['params', u'A_b']], 'current_path': u'umfang-allgemein-u', 'entity': <Tool: Aktiv: Dreieck Onlinerechner: Umfang, Flächeninhalt, Höhen, Inkreis und Umkreis>, 'params': OrderedDict([('a', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116590>), ('b', <mathtools.tools.abstracts.ToolParam object at 0x7f8c951165d0>), ('c', <mathtools.tools.abstracts.ToolParam object at 0x7f8c95116610>)]), 'result': <mathtools.calculators.ToolResult object at 0x7f8c9517ea90>, 'template': 'mathtools/tools/math/triangle.html'}, {}] |
/home/mathlex/live/src/mathtools/calculators/__init__.py
in render
self.content_type,
self.content,
self.content_type)
if self.content_type == 'f':
return '%s<p><img src="%s" alt="%s" /></p>' % (
link,
tex2png_rel(formula=self.content, temporary=True),...
self.content)
return u''
class AbstractCalculator(object):
Variable | Value |
---|---|
self | <mathtools.calculators.ContentItem object at 0x7f8c94bbc650> |
link | u'' |
/home/mathlex/live/src/formula/latex.py
in tex2png_rel
if temporary:
url = settings.FORMULA_TEMP_URL
else:
url = settings.FORMULA_URL
return os.path.join(url, hashFilename(formula))
def tex2png_rel(formula, temporary=True):
abs_filename = tex2png(formula, temporary)...
if temporary:
return abs_filename.replace(settings.FORMULA_TEMP_DIR,
'/%s' % settings.FORMULA_TEMP_URL)
else:
return abs_filename.replace(settings.FORMULA_DIR,
'/%s' % settings.FORMULA_URL)
Variable | Value |
---|---|
formula | 'A = \\frac{\\sqrt{ (1.15 + 1.56 + 1.25) \\cdot (1.15 + 1.56 - 1.25) \\cdot (1.56 + 1.25 - 1.15) \\cdot (1.25 + 1.15 - 1.56) }}{4}' |
temporary | True |
/home/mathlex/live/src/formula/latex.py
in tex2png
tex.write(formula.encode('utf-8'))
tex.flush()
tmpdir = dirname(tex.name)
items = "aux log dvi ps".split()
files = dict((x, '%s.%s' % (tex.name, x)) for x in items)
call(['pdflatex', '-output-format', 'dvi', tex.name],
cwd=tmpdir, stdout=PIPE, stderr=PIPE)...
call(['dvips', '-R', '-E', files['dvi'], '-o', files['ps']],
cwd=tmpdir, stdout=PIPE, stderr=PIPE)
call(['gm', 'convert', '-quality', '100',
'-density', '110',
'-transparent', 'white',
'-antialias',
Variable | Value |
---|---|
files | {'aux': '/home/mathlex/live/src/media/formulas/temp/tmpN0xTb0.aux', 'dvi': '/home/mathlex/live/src/media/formulas/temp/tmpN0xTb0.dvi', 'log': '/home/mathlex/live/src/media/formulas/temp/tmpN0xTb0.log', 'ps': '/home/mathlex/live/src/media/formulas/temp/tmpN0xTb0.ps'} |
temporary | True |
items | ['aux', 'log', 'dvi', 'ps'] |
filename | '/home/mathlex/live/src/media/formulas/temp/b9eadfe041b2b35c00f287764ceea864.png' |
tex | <open file '<fdopen>', mode 'w+b' at 0x7f8c94f92420> |
directory | '/home/mathlex/live/src/media/formulas/temp' |
formula | '\\nonstopmode\\documentclass{article}\\usepackage[utf8]{inputenc}\\usepackage{amsmath}\\usepackage{amsfonts}\\usepackage{amssymb}\\pagestyle{empty}\\begin{document}\\fontsize{12}{0pt}\\begin{displaymath}A = \\frac{\\sqrt{ (1.15 + 1.56 + 1.25) \\cdot (1.15 + 1.56 - 1.25) \\cdot (1.56 + 1.25 - 1.15) \\cdot (1.25 + 1.15 - 1.56) }}{4}\\end{displaymath}\n\\end{document}' |
tmpdir | '/home/mathlex/live/src/media/formulas/temp' |
/usr/lib/python2.7/subprocess.py
in call
"""Run command with arguments. Wait for command to complete, then
return the returncode attribute.
The arguments are the same as for the Popen constructor. Example:
retcode = call(["ls", "-l"])
"""
return Popen(*popenargs, **kwargs).wait()...
def check_call(*popenargs, **kwargs):
"""Run command with arguments. Wait for command to complete. If
the exit code was zero then return, otherwise raise
CalledProcessError. The CalledProcessError object will have the
Variable | Value |
---|---|
popenargs | (['pdflatex', '-output-format', 'dvi', '/home/mathlex/live/src/media/formulas/temp/tmpN0xTb0'],) |
kwargs | {'cwd': '/home/mathlex/live/src/media/formulas/temp', 'stderr': -1, 'stdout': -1} |
/usr/lib/python2.7/subprocess.py
in __init__
try:
self._execute_child(args, executable, preexec_fn, close_fds,
cwd, env, universal_newlines,
startupinfo, creationflags, shell, to_close,
p2cread, p2cwrite,
c2pread, c2pwrite,
errread, errwrite)...
except Exception:
# Preserve original exception in case os.close raises.
exc_type, exc_value, exc_trace = sys.exc_info()
for fd in to_close:
try:
Variable | Value |
---|---|
errread | 19 |
stdout | -1 |
c2pread | 16 |
errwrite | 20 |
bufsize | 0 |
exc_type | <type 'exceptions.OSError'> |
to_close | set([16, 19]) |
close_fds | False |
self | <subprocess.Popen object at 0x7f8c95178c10> |
env | None |
cwd | '/home/mathlex/live/src/media/formulas/temp' |
shell | False |
args | ['pdflatex', '-output-format', 'dvi', '/home/mathlex/live/src/media/formulas/temp/tmpN0xTb0'] |
executable | None |
fd | 19 |
c2pwrite | 17 |
creationflags | 0 |
preexec_fn | None |
exc_trace | <traceback object at 0x7f8c94ab8dc0> |
p2cread | None |
startupinfo | None |
stdin | None |
p2cwrite | None |
exc_value | OSError(2, 'No such file or directory') |
stderr | -1 |
universal_newlines | False |
/usr/lib/python2.7/subprocess.py
in _execute_child
if data != "":
try:
_eintr_retry_call(os.waitpid, self.pid, 0)
except OSError as e:
if e.errno != errno.ECHILD:
raise
child_exception = pickle.loads(data)
raise child_exception...
def _handle_exitstatus(self, sts, _WIFSIGNALED=os.WIFSIGNALED,
_WTERMSIG=os.WTERMSIG, _WIFEXITED=os.WIFEXITED,
_WEXITSTATUS=os.WEXITSTATUS, _WIFSTOPPED=os.WIFSTOPPED,
_WSTOPSIG=os.WSTOPSIG):
Variable | Value |
---|---|
errread | 19 |
c2pread | 16 |
gc_was_enabled | True |
errwrite | 20 |
shell | False |
errpipe_write | 22 |
to_close | set([16, 19]) |
close_fds | False |
self | <subprocess.Popen object at 0x7f8c95178c10> |
env | None |
cwd | '/home/mathlex/live/src/media/formulas/temp' |
child_exception | OSError(2, 'No such file or directory') |
args | ['pdflatex', '-output-format', 'dvi', '/home/mathlex/live/src/media/formulas/temp/tmpN0xTb0'] |
executable | 'pdflatex' |
c2pwrite | 17 |
data | 'cexceptions\nOSError\np0\n(I2\nS\'No such file or directory\'\np1\ntp2\nRp3\n(dp4\nS\'child_traceback\'\np5\nS\'Traceback (most recent call last):\\n File "/usr/lib/python2.7/subprocess.py", line 997, in _execute_child\\n os.execvp(executable, args)\\n File "/home/mathlex/.virtualenvs/django13html/lib/python2.7/os.py", line 346, in execvp\\n _execvpe(file, args)\\n File "/home/mathlex/.virtualenvs/django13html/lib/python2.7/os.py", line 382, in _execvpe\\n func(fullname, *argrest)\\nOSError: [Errno 2] No such file or directory\\n\'\np6\nsb.' |
creationflags | 0 |
errpipe_read | 21 |
preexec_fn | None |
p2cread | None |
startupinfo | None |
p2cwrite | None |
_close_in_parent | <function _close_in_parent at 0x7f8c950b79d0> |
pickle_bits | ['cexceptions\nOSError\np0\n(I2\nS\'No such file or directory\'\np1\ntp2\nRp3\n(dp4\nS\'child_traceback\'\np5\nS\'Traceback (most recent call last):\\n File "/usr/lib/python2.7/subprocess.py", line 997, in _execute_child\\n os.execvp(executable, args)\\n File "/home/mathlex/.virtualenvs/django13html/lib/python2.7/os.py", line 346, in execvp\\n _execvpe(file, args)\\n File "/home/mathlex/.virtualenvs/django13html/lib/python2.7/os.py", line 382, in _execvpe\\n func(fullname, *argrest)\\nOSError: [Errno 2] No such file or directory\\n\'\np6\nsb.'] |
universal_newlines | False |
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
HTTP_X_FORWARDED_PROTO | 'https' |
SERVER_PROTOCOL | 'HTTP/1.0' |
SERVER_SOFTWARE | 'gunicorn/0.14.6' |
SCRIPT_NAME | u'' |
wsgi.input | <gunicorn.http.body.Body object at 0x7f8c94824710> |
REQUEST_METHOD | 'GET' |
HTTP_HOST | 'mathe-lexikon.at' |
PATH_INFO | u'/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html' |
wsgi.multithread | False |
QUERY_STRING | '' |
HTTP_CONNECTION | 'close' |
HTTP_X_REAL_IP | '44.222.161.54' |
HTTP_ACCEPT | '*/*' |
HTTP_USER_AGENT | 'claudebot' |
wsgi.version | (1, 0) |
REMOTE_PORT | '80' |
RAW_URI | '/geometrie/ebene-figuren/dreiecke/flaecheumfang/umfang-dreieck.html' |
REMOTE_ADDR | '44.222.161.54' |
wsgi.run_once | False |
wsgi.errors | <gunicorn.glogging.LazyWriter object at 0x7f8c97ef6810> |
wsgi.multiprocess | True |
wsgi.url_scheme | 'http' |
gunicorn.socket | <socket._socketobject object at 0x7f8c94e56f30> |
SERVER_NAME | 'mathe-lexikon.at' |
SERVER_PORT | '80' |
HTTP_X_FORWARDED_FOR | '44.222.161.54' |
wsgi.file_wrapper | '' |
CSRF_COOKIE | 'TcUSn15UlY8xCLxS4ax9V6YmOfojYZnV' |
CSRF_COOKIE_USED | True |
src.settings
Setting | Value |
---|---|
USE_L10N | True |
USE_THOUSAND_SEPARATOR | False |
CSRF_COOKIE_SECURE | False |
STARTPAGE | 2960 |
LANGUAGE_CODE | 'de-at' |
ROOT_URLCONF | 'urls' |
LOGIN_URL | '/accounts/login/' |
DEFAULT_CHARSET | 'utf-8' |
STATIC_ROOT | '/home/mathlex/live/src/static' |
DEFAULT_LANGUAGE | 0 |
CMS_MODERATOR | True |
CACHE_MIDDLEWARE_ANONYMOUS_ONLY | True |
ALLOWED_HOSTS | ['*'] |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
EMAIL_SUBJECT_PREFIX | '[Django] ' |
SEND_BROKEN_LINK_EMAILS | False |
URL_VALIDATOR_USER_AGENT | 'Django/1.4.5 (https://www.djangoproject.com)' |
STATICFILES_FINDERS | ('django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder') |
SESSION_COOKIE_DOMAIN | None |
SESSION_COOKIE_NAME | 'sessionid' |
PAGINATION_DEFAULT_PAGINATION | 25 |
ADMIN_FOR | () |
TIME_INPUT_FORMATS | ('%H:%M:%S', '%H:%M') |
DATABASES | {'default': {'ENGINE': 'django.db.backends.mysql', 'HOST': 'localhost', 'NAME': 'mathelexikon', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST_CHARSET': None, 'TEST_COLLATION': None, 'TEST_MIRROR': None, 'TEST_NAME': None, 'TIME_ZONE': 'Europe/Berlin', 'USER': 'mathelexikon'}} |
FILE_UPLOAD_PERMISSIONS | None |
FILE_UPLOAD_HANDLERS | ('django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler') |
DEFAULT_CONTENT_TYPE | 'text/html' |
AUTOSLUG_SLUGIFY_FUNCTION | '' |
FIRST_DAY_OF_WEEK | 0 |
DATABASE_ROUTERS | [] |
CMS_MENU_TITLE_OVERWRITE | True |
YEAR_MONTH_FORMAT | 'F Y' |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', 'LOCATION': '/home/mathlex/live/cache', 'TIMEOUT': 2592000}} |
SERVER_EMAIL | 'root@localhost' |
SESSION_COOKIE_PATH | '/' |
FORMULA_URL | 'media/formulas' |
CMS_TEMPLATES | (('template_default.html', 'Standard-Vorlage (SZM Content'), ('template_agof.html', 'Standard-Vorlage (SZM No-Content)'), ('template_agof_start.html', 'Startseite (SZM-Tag)'), ('template_tool.html', 'Standard-Vorlage mit Tool'), ('template_with_ui.html', 'Vorlage mit UI-Elementen'), ('template_sitemap.html', 'Sitemap')) |
CMS_CACHE_PREFIX | 'cms-' |
USE_I18N | True |
THOUSAND_SEPARATOR | ',' |
CMS_LANGUAGES | {1: [{'code': 'de-at', 'fallbacks': ['de-at'], 'hide_untranslated': True, 'name': 'Deutsch', 'public': True, 'redirect_on_fallback': True}], <class cms.utils.conf.VERIFIED at 0x7f8c974f8fa0>: True, 'default': {'fallbacks': ['de-at'], 'hide_untranslated': True, 'public': False, 'redirect_on_fallback': True}} |
LANGUAGE_COOKIE_NAME | 'django_language' |
PAGINATION_DEFAULT_WINDOW | 2 |
DEFAULT_INDEX_TABLESPACE | '' |
TRANSACTIONS_MANAGED | False |
LOGGING_CONFIG | 'django.utils.log.dictConfig' |
APPEND_SLASH | True |
TEMPLATE_LOADERS | ('django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader') |
WSGI_APPLICATION | None |
TEMPLATE_DEBUG | True |
X_FRAME_OPTIONS | 'SAMEORIGIN' |
CSRF_COOKIE_NAME | 'csrftoken' |
HAYSTACK_CONNECTIONS | {'default': {'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine', 'INDEX_NAME': 'mathe', 'URL': 'http://localhost:9200/'}} |
FORCE_SCRIPT_NAME | None |
USE_X_FORWARDED_HOST | False |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SESSION_COOKIE_SECURE | False |
CSRF_COOKIE_DOMAIN | None |
FILE_CHARSET | 'utf-8' |
DEBUG | True |
CACHE_TIMEOUT | 2592000 |
SESSION_FILE_PATH | None |
DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
INSTALLED_APPS | ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.admin', 'django.contrib.staticfiles', 'django.contrib.comments', 'django.contrib.sitemaps', 'requests', 'haystack', 'cms', 'cms_redirects', 'menus', 'mptt', 'south', 'sekizai', 'cms.plugins.text', 'cms.plugins.file', 'cms.plugins.teaser', 'cms.plugins.snippet', 'django_select2', 'djangocms_link', 'unit_field', 'comments_spamfighter', 'autoslug', 'core', 'mathres', 'mathvid', 'mathtools', 'formula', 'sorl.thumbnail', 'djangoratings', 'cmsplugin_youtube', 'cmsplugin_csvtable', 'cmsplugin_contact', 'advanced_picture', 'pagination', 'tagging') |
LANGUAGES | [('de-at', 'de')] |
COMMENTS_ALLOW_PROFANITIES | False |
STATICFILES_DIRS | ('/home/mathlex/live/src/templates/static',) |
PREPEND_WWW | False |
SECURE_PROXY_SSL_HEADER | None |
SESSION_COOKIE_HTTPONLY | True |
DEBUG_PROPAGATE_EXCEPTIONS | False |
MONTH_DAY_FORMAT | 'F j' |
MANAGERS | (('Mathe Lexikon', 'info@mathe-lexikon.at'),) |
SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
TIME_FORMAT | 'P' |
FORMULA_TEMP_DIR | '/home/mathlex/live/src/media/formulas/temp' |
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') |
AUTHENTICATION_BACKENDS | ('django.contrib.auth.backends.ModelBackend',) |
EMAIL_HOST_PASSWORD | u'********************' |
PASSWORD_RESET_TIMEOUT_DAYS | u'********************' |
CACHE_MIDDLEWARE_ALIAS | 'default' |
SESSION_SAVE_EVERY_REQUEST | False |
ADMIN_MEDIA_PREFIX | '/static/admin/' |
NUMBER_GROUPING | 0 |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SESSION_ENGINE | 'django.contrib.sessions.backends.db' |
CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
CSRF_COOKIE_PATH | '/' |
LOGIN_REDIRECT_URL | '/accounts/profile/' |
CMS_CACHE_DURATIONS | {'content': 60, 'menus': 3600, 'permissions': 3600} |
DECIMAL_SEPARATOR | '.' |
CMS_SEO_FIELDS | True |
IGNORABLE_404_URLS | () |
LOCALE_PATHS | ('/home/mathlex/live/src/locale',) |
TEMPLATE_STRING_IF_INVALID | '' |
LOGOUT_URL | '/accounts/logout/' |
EMAIL_USE_TLS | False |
FIXTURE_DIRS | () |
EMAIL_HOST | 'localhost' |
DATE_FORMAT | 'N j, Y' |
PAGINATION_DEFAULT_ORPHANS | 0 |
LOGGING | {'disable_existing_loggers': False, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}}, 'handlers': {'mail_admins': {'class': 'django.utils.log.AdminEmailHandler', 'filters': ['require_debug_false'], 'level': 'ERROR'}}, 'loggers': {'django.request': {'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': True}}, 'version': 1} |
MEDIA_ROOT | '/home/mathlex/live/src/media' |
DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
ADMINS | (('Erich Hnilica', 'eh@mathe-lexikon.at'), ('Roland Lammel', 'rl@mathe-lexikon.at'), ('Anna Brunner', 'ab@mathe-lexikon.at')) |
FORMAT_MODULE_PATH | None |
DEFAULT_FROM_EMAIL | 'no-reply@mathe-lexikon.at' |
SHOW_ADS | True |
MEDIA_URL | '/media/' |
DATETIME_FORMAT | 'N j, Y, P' |
TEMPLATE_DIRS | ('/home/mathlex/live/src/templates', '/home/mathlex/live/src/formula/templates') |
MIDDLEWARE_CLASSES | ('cms_redirects.middleware.RedirectFallbackMiddleware', 'django.middleware.cache.UpdateCacheMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'cms.middleware.page.CurrentPageMiddleware', 'cms.middleware.user.CurrentUserMiddleware', 'cms.middleware.toolbar.ToolbarMiddleware', 'pagination.middleware.PaginationMiddleware', 'django.middleware.transaction.TransactionMiddleware', 'django.middleware.cache.FetchFromCacheMiddleware') |
SITE_ID | 1 |
DISALLOWED_USER_AGENTS | () |
ALLOWED_INCLUDE_ROOTS | () |
FORMULA_TEMP_URL | 'media/formulas/temp' |
PROJECT_DIR | '/home/mathlex/live/src' |
SECRET_KEY | u'********************' |
FORMULA_DIR | '/home/mathlex/live/src/media/formulas' |
TEST_RUNNER | 'django.test.simple.DjangoTestSuiteRunner' |
SHORT_DATE_FORMAT | 'm/d/Y' |
CACHE_MIDDLEWARE_KEY_PREFIX | u'********************' |
TIME_ZONE | 'Europe/Berlin' |
FILE_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
DEFAULT_TABLESPACE | '' |
TEMPLATE_CONTEXT_PROCESSORS | ('django.core.context_processors.csrf', 'django.contrib.auth.context_processors.auth', 'django.core.context_processors.i18n', 'django.core.context_processors.request', 'django.core.context_processors.media', 'django.core.context_processors.static', 'cms.context_processors.media', 'sekizai.context_processors.sekizai', 'context_processors.ad_context_processor', 'context_processors.search_context_processor', 'context_processors.latest_pages', 'mathres.context_processors.related_worksheets', 'mathvid.context_processors.related_videos') |
SESSION_COOKIE_AGE | 1209600 |
SETTINGS_MODULE | 'src.settings' |
USE_ETAGS | False |
LANGUAGES_BIDI | ('he', 'ar', 'fa') |
FILE_UPLOAD_TEMP_DIR | None |
INTERNAL_IPS | () |
STATIC_URL | '/static/' |
EMAIL_PORT | 25 |
USE_TZ | False |
CACHE_PREFIX | 'mathe' |
PASSWORD_HASHERS | u'********************' |
ABSOLUTE_URL_OVERRIDES | {} |
ADVANCED_PICTURE_MAX_WIDTH | 580 |
CACHE_MIDDLEWARE_SECONDS | 2592000 |
MODULE_VIDEO_ENABLED | False |
DATETIME_INPUT_FORMATS | ('%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%Y-%m-%d', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%Y', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M', '%m/%d/%y') |
ADVANCED_PICTURE_MAX_WIDTH_INLINE | 300 |
EMAIL_HOST_USER | '' |
PROFANITIES_LIST | u'********************' |
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 500 page.