TemplateSyntaxError at /django_admin_tests/latest/english/defaults/500-template-broken/

Invalid block tag on line 7: 'unknown_tag_name_foo', expected 'endblock'. Did you forget to register or load this tag?
Request Method:
Request URL: http://Hello:1337/django_admin_tests/latest/english/defaults/500-template-broken/
Django Version: 5.2.dev20241204155957
Exception Type: TemplateSyntaxError
Exception Value:
Invalid block tag on line 7: 'unknown_tag_name_foo', expected 'endblock'. Did you forget to register or load this tag?
Exception Location: /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py, line 567, in invalid_block_tag
Raised during: demo.demo_urls.server_error_template_broken
Python Executable: /home/runner/work/django_admin_tests/django_admin_tests/.venv/bin/python
Python Version: 3.12.7
Python Path:
['/home/runner/work/django_admin_tests/django_admin_tests',
 '/opt/hostedtoolcache/Python/3.12.7/x64/lib/python312.zip',
 '/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12',
 '/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/lib-dynload',
 '/home/runner/work/django_admin_tests/django_admin_tests/.venv/lib/python3.12/site-packages',
 '__editable__.Django-5.2.dev20241204155957.finder.__path_hook__']
Server time: Wed, 04 Dec 2024 21:36:46 +0000

Error during template rendering

In template /home/runner/work/django_admin_tests/django_admin_tests/demo/templates/demo/broken_template.html, error at line 7

Invalid block tag on line 7: 'unknown_tag_name_foo', expected 'endblock'. Did you forget to register or load this tag?

1 {% extends "demo/base.html" %}
2 {% block title %}Broken template{% endblock %}
3 {% block h1 %}Broken template{% endblock %}
4
5 {% block content %}
6 <p>This is a test.</p>
7 <p>{% unknown_tag_name_foo %}</p>
8 {% endblock %}
9

Traceback Switch to copy-and-paste view

  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py, line 510, in parse
    1.                 # Add the token to the command stack. This is used for error
    2.                 # messages if further parsing fails due to an unclosed block
    3.                 # tag.
    4.                 self.command_stack.append((command, token))
    5.                 # Get the tag callback function from the ones registered with
    6.                 # the parser.
    7.                 try:
    1.                     compile_func = self.tags[command]
                                              ^^^^^^^^^^^^^^^^^^
    1.                 except KeyError:
    2.                     self.invalid_block_tag(token, command, parse_until)
    3.                 # Compile the callback into a node object and add it to
    4.                 # the node list.
    5.                 try:
    6.                     compiled_result = compile_func(self, token)
    Local vars
    Variable Value
    command
    'unknown_tag_name_foo'
    nodelist
    [<TextNode: '\n  <p>This is a test.</p>'>]
    parse_until
    ('endblock',)
    self
    <Parser tokens=[<Text token: "...">, <Block token: "endblock...">, <Text token: "</p>...">]>
    token
    <Block token: "unknown_tag_name_foo...">
    token_type
    2
  • During handling of the above exception ('unknown_tag_name_foo'), another exception occurred:

  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/core/handlers/exception.py, line 55, in inner
    1.         return inner
    2.     else:
    3.         @wraps(get_response)
    4.         def inner(request):
    5.             try:
    1.                 response = get_response(request)
                                     ^^^^^^^^^^^^^^^^^^^^^
    1.             except Exception as exc:
    2.                 response = response_for_exception(request, exc)
    3.             return response
    4.         return inner
    Local vars
    Variable Value
    exc
    TemplateSyntaxError("Invalid block tag on line 7: 'unknown_tag_name_foo', expected 'endblock'. Did you forget to register or load this tag?")
    get_response
    <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7fae70c8b1d0>>
    request
    <WSGIRequest: GET '/django_admin_tests/latest/english/defaults/500-template-broken/'>
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/core/handlers/base.py, line 197, in _get_response
    1.         if response is None:
    2.             wrapped_callback = self.make_view_atomic(callback)
    3.             # If it is an asynchronous view, run it in a subthread.
    4.             if iscoroutinefunction(wrapped_callback):
    5.                 wrapped_callback = async_to_sync(wrapped_callback)
    6.             try:
    1.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)
                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    1.             except Exception as e:
    2.                 response = self.process_exception_by_middleware(e, request)
    3.                 if response is None:
    4.                     raise
    5.         # Complain if the view returned None (a common error).
    Local vars
    Variable Value
    callback
    <function server_error_template_broken at 0x7fae6f159120>
    callback_args
    ()
    callback_kwargs
    {}
    middleware_method
    <bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>>
    request
    <WSGIRequest: GET '/django_admin_tests/latest/english/defaults/500-template-broken/'>
    response
    None
    self
    <django.core.handlers.wsgi.WSGIHandler object at 0x7fae70c8b1d0>
    wrapped_callback
    <function server_error_template_broken at 0x7fae6f159120>
  • /home/runner/work/django_admin_tests/django_admin_tests/demo/demo_urls.py, line 45, in server_error_template_broken
    1. def server_error_template_broken(request):
    2.     request.META = {
    3.         "SERVER_NAME": "Hello",
    4.         "SERVER_PORT": 1337,
    5.     }
    1.     return render(request, "demo/broken_template.html")
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    1. def server_error_unicode(request):
    2.     request.META = {
    3.         "SERVER_NAME": "Hello",
    4.         "SERVER_PORT": 1337,
    Local vars
    Variable Value
    request
    <WSGIRequest: GET '/django_admin_tests/latest/english/defaults/500-template-broken/'>
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/shortcuts.py, line 25, in render
    1. def render(
    2.     request, template_name, context=None, content_type=None, status=None, using=None
    3. ):
    4.     """
    5.     Return an HttpResponse whose content is filled with the result of calling
    6.     django.template.loader.render_to_string() with the passed arguments.
    7.     """
    1.     content = loader.render_to_string(template_name, context, request, using=using)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    1.     return HttpResponse(content, content_type, status)
    2. def redirect(to, *args, permanent=False, preserve_request=False, **kwargs):
    3.     """
    4.     Return an HttpResponseRedirect to the appropriate URL for the arguments
    Local vars
    Variable Value
    content_type
    None
    context
    None
    request
    <WSGIRequest: GET '/django_admin_tests/latest/english/defaults/500-template-broken/'>
    status
    None
    template_name
    'demo/broken_template.html'
    using
    None
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/loader.py, line 61, in render_to_string
    1.     Load a template and render it with a context. Return a string.
    2.     template_name may be a string or a list of strings.
    3.     """
    4.     if isinstance(template_name, (list, tuple)):
    5.         template = select_template(template_name, using=using)
    6.     else:
    1.         template = get_template(template_name, using=using)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    1.     return template.render(context, request)
    2. def _engine_list(using=None):
    3.     return engines.all() if using is None else [engines[using]]
    Local vars
    Variable Value
    context
    None
    request
    <WSGIRequest: GET '/django_admin_tests/latest/english/defaults/500-template-broken/'>
    template_name
    'demo/broken_template.html'
    using
    None
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/loader.py, line 15, in get_template
    1.     Raise TemplateDoesNotExist if no such template exists.
    2.     """
    3.     chain = []
    4.     engines = _engine_list(using)
    5.     for engine in engines:
    6.         try:
    1.             return engine.get_template(template_name)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    1.         except TemplateDoesNotExist as e:
    2.             chain.append(e)
    3.     raise TemplateDoesNotExist(template_name, chain=chain)
    Local vars
    Variable Value
    chain
    []
    engine
    <django.template.backends.django.DjangoTemplates object at 0x7fae7024f530>
    engines
    [<django.template.backends.django.DjangoTemplates object at 0x7fae7024f530>]
    template_name
    'demo/broken_template.html'
    using
    None
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/backends/django.py, line 79, in get_template
    1.         return errors
    2.     def from_string(self, template_code):
    3.         return Template(self.engine.from_string(template_code), self)
    4.     def get_template(self, template_name):
    5.         try:
    1.             return Template(self.engine.get_template(template_name), self)
                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    1.         except TemplateDoesNotExist as exc:
    2.             reraise(exc, self)
    3.     def get_templatetag_libraries(self, custom_libraries):
    4.         """
    5.         Return a collation of template tag libraries from installed
    Local vars
    Variable Value
    self
    <django.template.backends.django.DjangoTemplates object at 0x7fae7024f530>
    template_name
    'demo/broken_template.html'
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/engine.py, line 177, in get_template
    1.         return Template(template_code, engine=self)
    2.     def get_template(self, template_name):
    3.         """
    4.         Return a compiled Template object for the given template name,
    5.         handling template inheritance recursively.
    6.         """
    1.         template, origin = self.find_template(template_name)
                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    1.         if not hasattr(template, "render"):
    2.             # template needs to be compiled
    3.             template = Template(template, origin, template_name, engine=self)
    4.         return template
    5.     def render_to_string(self, template_name, context=None):
    Local vars
    Variable Value
    self
    <Engine: app_dirs=True context_processors=['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages'] debug=True loaders=[('django.template.loaders.cached.Loader', ['django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader'])] string_if_invalid='' file_charset='utf-8' libraries={'cache': 'django.templatetags.cache', 'i18n': 'django.templatetags.i18n', 'l10n': 'django.templatetags.l10n', 'static': 'django.templatetags.static', 'tz': 'django.templatetags.tz', 'admin_list': 'django.contrib.admin.templatetags.admin_list', 'admin_modify': 'django.contrib.admin.templatetags.admin_modify', 'admin_urls': 'django.contrib.admin.templatetags.admin_urls', 'log': 'django.contrib.admin.templatetags.log', 'flatpages': 'django.contrib.flatpages.templatetags.flatpages'} builtins=['django.template.defaulttags', 'django.template.defaultfilters', 'django.template.loader_tags'] autoescape=True>
    template_name
    'demo/broken_template.html'
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/engine.py, line 159, in find_template
    1.                 "Invalid value in template loaders configuration: %r" % loader
    2.             )
    3.     def find_template(self, name, dirs=None, skip=None):
    4.         tried = []
    5.         for loader in self.template_loaders:
    6.             try:
    1.                 template = loader.get_template(name, skip=skip)
                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    1.                 return template, template.origin
    2.             except TemplateDoesNotExist as e:
    3.                 tried.extend(e.tried)
    4.         raise TemplateDoesNotExist(name, tried=tried)
    5.     def from_string(self, template_code):
    Local vars
    Variable Value
    dirs
    None
    loader
    <django.template.loaders.cached.Loader object at 0x7fae6dd09550>
    name
    'demo/broken_template.html'
    self
    <Engine: app_dirs=True context_processors=['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages'] debug=True loaders=[('django.template.loaders.cached.Loader', ['django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader'])] string_if_invalid='' file_charset='utf-8' libraries={'cache': 'django.templatetags.cache', 'i18n': 'django.templatetags.i18n', 'l10n': 'django.templatetags.l10n', 'static': 'django.templatetags.static', 'tz': 'django.templatetags.tz', 'admin_list': 'django.contrib.admin.templatetags.admin_list', 'admin_modify': 'django.contrib.admin.templatetags.admin_modify', 'admin_urls': 'django.contrib.admin.templatetags.admin_urls', 'log': 'django.contrib.admin.templatetags.log', 'flatpages': 'django.contrib.flatpages.templatetags.flatpages'} builtins=['django.template.defaulttags', 'django.template.defaultfilters', 'django.template.loader_tags'] autoescape=True>
    skip
    None
    tried
    []
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/loaders/cached.py, line 57, in get_template
    1.             if isinstance(cached, type) and issubclass(cached, TemplateDoesNotExist):
    2.                 raise cached(template_name)
    3.             elif isinstance(cached, TemplateDoesNotExist):
    4.                 raise copy_exception(cached)
    5.             return cached
    6.         try:
    1.             template = super().get_template(template_name, skip)
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    1.         except TemplateDoesNotExist as e:
    2.             self.get_template_cache[key] = (
    3.                 copy_exception(e) if self.engine.debug else TemplateDoesNotExist
    4.             )
    5.             raise
    6.         else:
    Local vars
    Variable Value
    __class__
    <class 'django.template.loaders.cached.Loader'>
    cached
    None
    key
    'demo/broken_template.html'
    self
    <django.template.loaders.cached.Loader object at 0x7fae6dd09550>
    skip
    None
    template_name
    'demo/broken_template.html'
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/loaders/base.py, line 28, in get_template
    1.             try:
    2.                 contents = self.get_contents(origin)
    3.             except TemplateDoesNotExist:
    4.                 tried.append((origin, "Source does not exist"))
    5.                 continue
    6.             else:
    1.                 return Template(
                                 
    1.                     contents,
    2.                     origin,
    3.                     origin.template_name,
    4.                     self.engine,
    5.                 )
    Local vars
    Variable Value
    contents
    ('{% extends "demo/base.html" %}\n'
     '{% block title %}Broken template{% endblock %}\n'
     '{% block h1 %}Broken template{% endblock %}\n'
     '\n'
     '{% block content %}\n'
     '  <p>This is a test.</p>\n'
     '  <p>{% unknown_tag_name_foo %}</p>\n'
     '{% endblock %}\n')
    origin
    <Origin name='/home/runner/work/django_admin_tests/django_admin_tests/demo/templates/demo/broken_template.html'>
    self
    <django.template.loaders.cached.Loader object at 0x7fae6dd09550>
    skip
    None
    template_name
    'demo/broken_template.html'
    tried
    []
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py, line 154, in __init__
    1.             engine = Engine.get_default()
    2.         if origin is None:
    3.             origin = Origin(UNKNOWN_SOURCE)
    4.         self.name = name
    5.         self.origin = origin
    6.         self.engine = engine
    7.         self.source = str(template_string)  # May be lazy.
    1.         self.nodelist = self.compile_nodelist()
                                   ^^^^^^^^^^^^^^^^^^^^^^^
    1.     def __repr__(self):
    2.         return '<%s template_string="%s...">' % (
    3.             self.__class__.__qualname__,
    4.             self.source[:20].replace("\n", ""),
    5.         )
    Local vars
    Variable Value
    engine
    <Engine: app_dirs=True context_processors=['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages'] debug=True loaders=[('django.template.loaders.cached.Loader', ['django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader'])] string_if_invalid='' file_charset='utf-8' libraries={'cache': 'django.templatetags.cache', 'i18n': 'django.templatetags.i18n', 'l10n': 'django.templatetags.l10n', 'static': 'django.templatetags.static', 'tz': 'django.templatetags.tz', 'admin_list': 'django.contrib.admin.templatetags.admin_list', 'admin_modify': 'django.contrib.admin.templatetags.admin_modify', 'admin_urls': 'django.contrib.admin.templatetags.admin_urls', 'log': 'django.contrib.admin.templatetags.log', 'flatpages': 'django.contrib.flatpages.templatetags.flatpages'} builtins=['django.template.defaulttags', 'django.template.defaultfilters', 'django.template.loader_tags'] autoescape=True>
    name
    'demo/broken_template.html'
    origin
    <Origin name='/home/runner/work/django_admin_tests/django_admin_tests/demo/templates/demo/broken_template.html'>
    self
    <Template template_string="{% extends "demo/bas...">
    template_string
    ('{% extends "demo/base.html" %}\n'
     '{% block title %}Broken template{% endblock %}\n'
     '{% block h1 %}Broken template{% endblock %}\n'
     '\n'
     '{% block content %}\n'
     '  <p>This is a test.</p>\n'
     '  <p>{% unknown_tag_name_foo %}</p>\n'
     '{% endblock %}\n')
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py, line 196, in compile_nodelist
    1.             tokens,
    2.             self.engine.template_libraries,
    3.             self.engine.template_builtins,
    4.             self.origin,
    5.         )
    6.         try:
    1.             nodelist = parser.parse()
                                  ^^^^^^^^^^^^^^
    1.             self.extra_data = parser.extra_data
    2.             return nodelist
    3.         except Exception as e:
    4.             if self.engine.debug:
    5.                 e.template_debug = self.get_exception_info(e, e.token)
    6.             raise
    Local vars
    Variable Value
    lexer
    <DebugLexer template_string="{% extends "demo/bas...", verbatim=False>
    parser
    <Parser tokens=[<Text token: "...">, <Block token: "endblock...">, <Text token: "</p>...">]>
    self
    <Template template_string="{% extends "demo/bas...">
    tokens
    [<Block token: "extends "demo/base.h...">,
     <Text token: "...">,
     <Block token: "block title...">,
     <Text token: "Broken template...">,
     <Block token: "endblock...">,
     <Text token: "...">,
     <Block token: "block h1...">,
     <Text token: "Broken template...">,
     <Block token: "endblock...">,
     <Text token: "...">,
     <Block token: "block content...">,
     <Text token: "  <p>This is a test...">,
     <Block token: "unknown_tag_name_foo...">,
     <Text token: "</p>...">,
     <Block token: "endblock...">,
     <Text token: "...">]
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py, line 518, in parse
    1.                 except KeyError:
    2.                     self.invalid_block_tag(token, command, parse_until)
    3.                 # Compile the callback into a node object and add it to
    4.                 # the node list.
    5.                 try:
    6.                     compiled_result = compile_func(self, token)
    7.                 except Exception as e:
    1.                     raise self.error(token, e)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^
    1.                 self.extend_nodelist(nodelist, compiled_result, token)
    2.                 # Compile success. Remove the token from the command stack.
    3.                 self.command_stack.pop()
    4.         if parse_until:
    5.             self.unclosed_block_tag(parse_until)
    6.         return nodelist
    Local vars
    Variable Value
    command
    'extends'
    compile_func
    <function do_extends at 0x7fae707e3740>
    nodelist
    []
    parse_until
    []
    self
    <Parser tokens=[<Text token: "...">, <Block token: "endblock...">, <Text token: "</p>...">]>
    token
    <Block token: "extends "demo/base.h...">
    token_type
    2
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py, line 516, in parse
    1.                 try:
    2.                     compile_func = self.tags[command]
    3.                 except KeyError:
    4.                     self.invalid_block_tag(token, command, parse_until)
    5.                 # Compile the callback into a node object and add it to
    6.                 # the node list.
    7.                 try:
    1.                     compiled_result = compile_func(self, token)
                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^
    1.                 except Exception as e:
    2.                     raise self.error(token, e)
    3.                 self.extend_nodelist(nodelist, compiled_result, token)
    4.                 # Compile success. Remove the token from the command stack.
    5.                 self.command_stack.pop()
    6.         if parse_until:
    Local vars
    Variable Value
    command
    'extends'
    compile_func
    <function do_extends at 0x7fae707e3740>
    nodelist
    []
    parse_until
    []
    self
    <Parser tokens=[<Text token: "...">, <Block token: "endblock...">, <Text token: "</p>...">]>
    token
    <Block token: "extends "demo/base.h...">
    token_type
    2
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/loader_tags.py, line 295, in do_extends
    1.     the parent template itself (if it evaluates to a Template object).
    2.     """
    3.     bits = token.split_contents()
    4.     if len(bits) != 2:
    5.         raise TemplateSyntaxError("'%s' takes one argument" % bits[0])
    6.     bits[1] = construct_relative_path(parser.origin.template_name, bits[1])
    7.     parent_name = parser.compile_filter(bits[1])
    1.     nodelist = parser.parse()
                          ^^^^^^^^^^^^^^
    1.     if nodelist.get_nodes_by_type(ExtendsNode):
    2.         raise TemplateSyntaxError(
    3.             "'%s' cannot appear more than once in the same template" % bits[0]
    4.         )
    5.     return ExtendsNode(nodelist, parent_name)
    Local vars
    Variable Value
    bits
    ['extends', '"demo/base.html"']
    parent_name
    <FilterExpression '"demo/base.html"'>
    parser
    <Parser tokens=[<Text token: "...">, <Block token: "endblock...">, <Text token: "</p>...">]>
    token
    <Block token: "extends "demo/base.h...">
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py, line 518, in parse
    1.                 except KeyError:
    2.                     self.invalid_block_tag(token, command, parse_until)
    3.                 # Compile the callback into a node object and add it to
    4.                 # the node list.
    5.                 try:
    6.                     compiled_result = compile_func(self, token)
    7.                 except Exception as e:
    1.                     raise self.error(token, e)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^
    1.                 self.extend_nodelist(nodelist, compiled_result, token)
    2.                 # Compile success. Remove the token from the command stack.
    3.                 self.command_stack.pop()
    4.         if parse_until:
    5.             self.unclosed_block_tag(parse_until)
    6.         return nodelist
    Local vars
    Variable Value
    command
    'block'
    compile_func
    <function do_block at 0x7fae707e3600>
    compiled_result
    <Block Node: h1. Contents: [<TextNode: 'Broken template'>]>
    nodelist
    [<TextNode: '\n'>,
     <Block Node: title. Contents: [<TextNode: 'Broken template'>]>,
     <TextNode: '\n'>,
     <Block Node: h1. Contents: [<TextNode: 'Broken template'>]>,
     <TextNode: '\n\n'>]
    parse_until
    []
    self
    <Parser tokens=[<Text token: "...">, <Block token: "endblock...">, <Text token: "</p>...">]>
    token
    <Block token: "block content...">
    token_type
    2
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py, line 516, in parse
    1.                 try:
    2.                     compile_func = self.tags[command]
    3.                 except KeyError:
    4.                     self.invalid_block_tag(token, command, parse_until)
    5.                 # Compile the callback into a node object and add it to
    6.                 # the node list.
    7.                 try:
    1.                     compiled_result = compile_func(self, token)
                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^
    1.                 except Exception as e:
    2.                     raise self.error(token, e)
    3.                 self.extend_nodelist(nodelist, compiled_result, token)
    4.                 # Compile success. Remove the token from the command stack.
    5.                 self.command_stack.pop()
    6.         if parse_until:
    Local vars
    Variable Value
    command
    'block'
    compile_func
    <function do_block at 0x7fae707e3600>
    compiled_result
    <Block Node: h1. Contents: [<TextNode: 'Broken template'>]>
    nodelist
    [<TextNode: '\n'>,
     <Block Node: title. Contents: [<TextNode: 'Broken template'>]>,
     <TextNode: '\n'>,
     <Block Node: h1. Contents: [<TextNode: 'Broken template'>]>,
     <TextNode: '\n\n'>]
    parse_until
    []
    self
    <Parser tokens=[<Text token: "...">, <Block token: "endblock...">, <Text token: "</p>...">]>
    token
    <Block token: "block content...">
    token_type
    2
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/loader_tags.py, line 234, in do_block
    1.         if block_name in parser.__loaded_blocks:
    2.             raise TemplateSyntaxError(
    3.                 "'%s' tag with name '%s' appears more than once" % (bits[0], block_name)
    4.             )
    5.         parser.__loaded_blocks.append(block_name)
    6.     except AttributeError:  # parser.__loaded_blocks isn't a list yet
    7.         parser.__loaded_blocks = [block_name]
    1.     nodelist = parser.parse(("endblock",))
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    1.     # This check is kept for backwards-compatibility. See #3100.
    2.     endblock = parser.next_token()
    3.     acceptable_endblocks = ("endblock", "endblock %s" % block_name)
    4.     if endblock.contents not in acceptable_endblocks:
    5.         parser.invalid_block_tag(endblock, "endblock", acceptable_endblocks)
    Local vars
    Variable Value
    bits
    ['block', 'content']
    block_name
    'content'
    parser
    <Parser tokens=[<Text token: "...">, <Block token: "endblock...">, <Text token: "</p>...">]>
    token
    <Block token: "block content...">
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py, line 512, in parse
    1.                 # tag.
    2.                 self.command_stack.append((command, token))
    3.                 # Get the tag callback function from the ones registered with
    4.                 # the parser.
    5.                 try:
    6.                     compile_func = self.tags[command]
    7.                 except KeyError:
    1.                     self.invalid_block_tag(token, command, parse_until)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    1.                 # Compile the callback into a node object and add it to
    2.                 # the node list.
    3.                 try:
    4.                     compiled_result = compile_func(self, token)
    5.                 except Exception as e:
    6.                     raise self.error(token, e)
    Local vars
    Variable Value
    command
    'unknown_tag_name_foo'
    nodelist
    [<TextNode: '\n  <p>This is a test.</p>'>]
    parse_until
    ('endblock',)
    self
    <Parser tokens=[<Text token: "...">, <Block token: "endblock...">, <Text token: "</p>...">]>
    token
    <Block token: "unknown_tag_name_foo...">
    token_type
    2
  • /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py, line 567, in invalid_block_tag
    1.             e = TemplateSyntaxError(e)
    2.         if not hasattr(e, "token"):
    3.             e.token = token
    4.         return e
    5.     def invalid_block_tag(self, token, command, parse_until=None):
    6.         if parse_until:
    1.             raise self.error(
                       ^
    1.                 token,
    2.                 "Invalid block tag on line %d: '%s', expected %s. Did you "
    3.                 "forget to register or load this tag?"
    4.                 % (
    5.                     token.lineno,
    6.                     command,
    Local vars
    Variable Value
    command
    'unknown_tag_name_foo'
    parse_until
    ('endblock',)
    self
    <Parser tokens=[<Text token: "...">, <Block token: "endblock...">, <Text token: "</p>...">]>
    token
    <Block token: "unknown_tag_name_foo...">


Request information

USER

AnonymousUser

GET

No GET data

POST

No POST data

FILES

No FILES data

No cookie data

META

Variable Value
SERVER_NAME
'Hello'
SERVER_PORT
1337

Settings

Using settings module demo.settings

Setting Value
ABSOLUTE_URL_OVERRIDES
{}
ADMINS
[]
ALLOWED_HOSTS
['*']
APPEND_SLASH
True
AUTHENTICATION_BACKENDS
'********************'
AUTH_PASSWORD_VALIDATORS
'********************'
AUTH_USER_MODEL
'********************'
BASE_DIR
PosixPath('/home/runner/work/django_admin_tests/django_admin_tests')
CACHES
{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS
'default'
CACHE_MIDDLEWARE_KEY_PREFIX
'********************'
CACHE_MIDDLEWARE_SECONDS
600
CSRF_COOKIE_AGE
31449600
CSRF_COOKIE_DOMAIN
None
CSRF_COOKIE_HTTPONLY
False
CSRF_COOKIE_NAME
'csrftoken'
CSRF_COOKIE_PATH
'/'
CSRF_COOKIE_SAMESITE
'Lax'
CSRF_COOKIE_SECURE
False
CSRF_FAILURE_VIEW
'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME
'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS
[]
CSRF_USE_SESSIONS
False
DATABASES
{'default': {'ATOMIC_REQUESTS': False,
             'AUTOCOMMIT': True,
             'CONN_HEALTH_CHECKS': False,
             'CONN_MAX_AGE': 0,
             'ENGINE': 'django.db.backends.sqlite3',
             'HOST': '',
             'NAME': PosixPath('/home/runner/work/django_admin_tests/django_admin_tests/db.sqlite3'),
             'OPTIONS': {},
             'PASSWORD': '********************',
             'PORT': '',
             'TEST': {'CHARSET': None,
                      'COLLATION': None,
                      'MIGRATE': True,
                      'MIRROR': None,
                      'NAME': None},
             'TIME_ZONE': None,
             'USER': ''}}
DATABASE_ROUTERS
[]
DATA_UPLOAD_MAX_MEMORY_SIZE
2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS
1200
DATA_UPLOAD_MAX_NUMBER_FILES
100
DATETIME_FORMAT
'N j, Y, P'
DATETIME_INPUT_FORMATS
['%Y-%m-%d %H:%M:%S',
 '%Y-%m-%d %H:%M:%S.%f',
 '%Y-%m-%d %H:%M',
 '%m/%d/%Y %H:%M:%S',
 '%m/%d/%Y %H:%M:%S.%f',
 '%m/%d/%Y %H:%M',
 '%m/%d/%y %H:%M:%S',
 '%m/%d/%y %H:%M:%S.%f',
 '%m/%d/%y %H:%M']
DATE_FORMAT
'N j, Y'
DATE_INPUT_FORMATS
['%Y-%m-%d',
 '%m/%d/%Y',
 '%m/%d/%y',
 '%b %d %Y',
 '%b %d, %Y',
 '%d %b %Y',
 '%d %b, %Y',
 '%B %d %Y',
 '%B %d, %Y',
 '%d %B %Y',
 '%d %B, %Y']
DEBUG
True
DEBUG_PROPAGATE_EXCEPTIONS
False
DEBUG_TOOLBAR_CONFIG
{'SHOW_TOOLBAR_CALLBACK': <function <lambda> at 0x7fae713b0400>}
DECIMAL_SEPARATOR
'.'
DEFAULT_AUTO_FIELD
'django.db.models.BigAutoField'
DEFAULT_CHARSET
'utf-8'
DEFAULT_EXCEPTION_REPORTER
'django.views.debug.ExceptionReporter'
DEFAULT_EXCEPTION_REPORTER_FILTER
'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FROM_EMAIL
'webmaster@localhost'
DEFAULT_INDEX_TABLESPACE
''
DEFAULT_TABLESPACE
''
DISALLOWED_USER_AGENTS
[]
EMAIL_BACKEND
'django.core.mail.backends.console.EmailBackend'
EMAIL_HOST
'localhost'
EMAIL_HOST_PASSWORD
'********************'
EMAIL_HOST_USER
''
EMAIL_PORT
25
EMAIL_SSL_CERTFILE
None
EMAIL_SSL_KEYFILE
'********************'
EMAIL_SUBJECT_PREFIX
'[Django] '
EMAIL_TIMEOUT
None
EMAIL_USE_LOCALTIME
False
EMAIL_USE_SSL
False
EMAIL_USE_TLS
False
FILE_UPLOAD_DIRECTORY_PERMISSIONS
None
FILE_UPLOAD_HANDLERS
['django.core.files.uploadhandler.MemoryFileUploadHandler',
 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE
2621440
FILE_UPLOAD_PERMISSIONS
420
FILE_UPLOAD_TEMP_DIR
None
FIRST_DAY_OF_WEEK
0
FIXTURE_DIRS
[]
FORCE_SCRIPT_NAME
None
FORMAT_MODULE_PATH
None
FORMS_URLFIELD_ASSUME_HTTPS
False
FORM_RENDERER
'django.forms.renderers.DjangoTemplates'
IGNORABLE_404_URLS
[]
INSTALLED_APPS
['demo',
 'debug_toolbar',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.redirects',
 'django.contrib.sites',
 'django.contrib.admindocs',
 'django.contrib.flatpages']
INTERNAL_IPS
['127.0.0.1']
LANGUAGES
[('af', 'Afrikaans'),
 ('ar', 'Arabic'),
 ('ar-dz', 'Algerian Arabic'),
 ('ast', 'Asturian'),
 ('az', 'Azerbaijani'),
 ('bg', 'Bulgarian'),
 ('be', 'Belarusian'),
 ('bn', 'Bengali'),
 ('br', 'Breton'),
 ('bs', 'Bosnian'),
 ('ca', 'Catalan'),
 ('ckb', 'Central Kurdish (Sorani)'),
 ('cs', 'Czech'),
 ('cy', 'Welsh'),
 ('da', 'Danish'),
 ('de', 'German'),
 ('dsb', 'Lower Sorbian'),
 ('el', 'Greek'),
 ('en', 'English'),
 ('en-au', 'Australian English'),
 ('en-gb', 'British English'),
 ('eo', 'Esperanto'),
 ('es', 'Spanish'),
 ('es-ar', 'Argentinian Spanish'),
 ('es-co', 'Colombian Spanish'),
 ('es-mx', 'Mexican Spanish'),
 ('es-ni', 'Nicaraguan Spanish'),
 ('es-ve', 'Venezuelan Spanish'),
 ('et', 'Estonian'),
 ('eu', 'Basque'),
 ('fa', 'Persian'),
 ('fi', 'Finnish'),
 ('fr', 'French'),
 ('fy', 'Frisian'),
 ('ga', 'Irish'),
 ('gd', 'Scottish Gaelic'),
 ('gl', 'Galician'),
 ('he', 'Hebrew'),
 ('hi', 'Hindi'),
 ('hr', 'Croatian'),
 ('hsb', 'Upper Sorbian'),
 ('hu', 'Hungarian'),
 ('hy', 'Armenian'),
 ('ia', 'Interlingua'),
 ('id', 'Indonesian'),
 ('ig', 'Igbo'),
 ('io', 'Ido'),
 ('is', 'Icelandic'),
 ('it', 'Italian'),
 ('ja', 'Japanese'),
 ('ka', 'Georgian'),
 ('kab', 'Kabyle'),
 ('kk', 'Kazakh'),
 ('km', 'Khmer'),
 ('kn', 'Kannada'),
 ('ko', 'Korean'),
 ('ky', 'Kyrgyz'),
 ('lb', 'Luxembourgish'),
 ('lt', 'Lithuanian'),
 ('lv', 'Latvian'),
 ('mk', 'Macedonian'),
 ('ml', 'Malayalam'),
 ('mn', 'Mongolian'),
 ('mr', 'Marathi'),
 ('ms', 'Malay'),
 ('my', 'Burmese'),
 ('nb', 'Norwegian Bokmål'),
 ('ne', 'Nepali'),
 ('nl', 'Dutch'),
 ('nn', 'Norwegian Nynorsk'),
 ('os', 'Ossetic'),
 ('pa', 'Punjabi'),
 ('pl', 'Polish'),
 ('pt', 'Portuguese'),
 ('pt-br', 'Brazilian Portuguese'),
 ('ro', 'Romanian'),
 ('ru', 'Russian'),
 ('sk', 'Slovak'),
 ('sl', 'Slovenian'),
 ('sq', 'Albanian'),
 ('sr', 'Serbian'),
 ('sr-latn', 'Serbian Latin'),
 ('sv', 'Swedish'),
 ('sw', 'Swahili'),
 ('ta', 'Tamil'),
 ('te', 'Telugu'),
 ('tg', 'Tajik'),
 ('th', 'Thai'),
 ('tk', 'Turkmen'),
 ('tr', 'Turkish'),
 ('tt', 'Tatar'),
 ('udm', 'Udmurt'),
 ('ug', 'Uyghur'),
 ('uk', 'Ukrainian'),
 ('ur', 'Urdu'),
 ('uz', 'Uzbek'),
 ('vi', 'Vietnamese'),
 ('zh-hans', 'Simplified Chinese'),
 ('zh-hant', 'Traditional Chinese')]
LANGUAGES_BIDI
['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur']
LANGUAGE_CODE
'en-us'
LANGUAGE_COOKIE_AGE
None
LANGUAGE_COOKIE_DOMAIN
None
LANGUAGE_COOKIE_HTTPONLY
False
LANGUAGE_COOKIE_NAME
'django_language'
LANGUAGE_COOKIE_PATH
'/'
LANGUAGE_COOKIE_SAMESITE
None
LANGUAGE_COOKIE_SECURE
False
LOCALE_PATHS
[]
LOGGING
{}
LOGGING_CONFIG
'logging.config.dictConfig'
LOGIN_REDIRECT_URL
'/accounts/profile/'
LOGIN_URL
'/accounts/login/'
LOGOUT_REDIRECT_URL
None
MANAGERS
[]
MEDIA_ROOT
''
MEDIA_URL
'/'
MESSAGE_STORAGE
'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE
['debug_toolbar.middleware.DebugToolbarMiddleware',
 'django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'demo.middleware.AutoLoginMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']
MIGRATION_MODULES
{}
MONTH_DAY_FORMAT
'F j'
NUMBER_GROUPING
0
PASSWORD_HASHERS
'********************'
PASSWORD_RESET_TIMEOUT
'********************'
PREPEND_WWW
False
ROOT_URLCONF
'demo.urls'
SECRET_KEY
'********************'
SECRET_KEY_FALLBACKS
'********************'
SECURE_CONTENT_TYPE_NOSNIFF
True
SECURE_CROSS_ORIGIN_OPENER_POLICY
'same-origin'
SECURE_HSTS_INCLUDE_SUBDOMAINS
False
SECURE_HSTS_PRELOAD
False
SECURE_HSTS_SECONDS
0
SECURE_PROXY_SSL_HEADER
None
SECURE_REDIRECT_EXEMPT
[]
SECURE_REFERRER_POLICY
'same-origin'
SECURE_SSL_HOST
None
SECURE_SSL_REDIRECT
False
SERVER_EMAIL
'root@localhost'
SESSION_CACHE_ALIAS
'default'
SESSION_COOKIE_AGE
1209600
SESSION_COOKIE_DOMAIN
None
SESSION_COOKIE_HTTPONLY
False
SESSION_COOKIE_NAME
'sessionid'
SESSION_COOKIE_PATH
'/'
SESSION_COOKIE_SAMESITE
'Lax'
SESSION_COOKIE_SECURE
False
SESSION_ENGINE
'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE
False
SESSION_FILE_PATH
None
SESSION_SAVE_EVERY_REQUEST
False
SESSION_SERIALIZER
'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE
'demo.settings'
SHORT_DATETIME_FORMAT
'm/d/Y P'
SHORT_DATE_FORMAT
'm/d/Y'
SIGNING_BACKEND
'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS
[]
SITE_ID
1
STATICFILES_DIRS
[]
STATICFILES_FINDERS
['django.contrib.staticfiles.finders.FileSystemFinder',
 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATIC_ROOT
PosixPath('/home/runner/work/django_admin_tests/django_admin_tests/static')
STATIC_URL
'/django_admin_tests/latest/english/static/'
STORAGES
{'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'},
 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}}
TEMPLATES
[{'APP_DIRS': True,
  'BACKEND': 'django.template.backends.django.DjangoTemplates',
  'DIRS': [],
  'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
                                     'django.template.context_processors.request',
                                     'django.contrib.auth.context_processors.auth',
                                     'django.contrib.messages.context_processors.messages']}}]
TEST_NON_SERIALIZED_APPS
[]
TEST_RUNNER
'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR
','
TIME_FORMAT
'P'
TIME_INPUT_FORMATS
['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE
'UTC'
USE_I18N
True
USE_L10N
True
USE_THOUSAND_SEPARATOR
False
USE_TZ
True
USE_X_FORWARDED_HOST
False
USE_X_FORWARDED_PORT
False
VARIANT
'English'
VARIANTS
['English', 'German', 'Arabic']
VERSION_NUMBER
'latest'
VERSION_NUMBERS
{'latest': 'v5.2.dev20241204155957',
 'v2.2': 'v2.2',
 'v3.0': 'v3.0',
 'v3.1': 'v3.1',
 'v3.2': 'v3.2',
 'v4.0': 'v4.0',
 'v4.1': 'v4.1',
 'v4.2': 'v4.2',
 'v5.0': 'v5.0',
 'v5.1': 'v5.1',
 'v5.2': 'v5.2'}
WSGI_APPLICATION
'demo.wsgi.application'
X_FRAME_OPTIONS
'DENY'
YEAR_MONTH_FORMAT
'F Y'
DJDT

Versions

Package Name Version
Django 5.2.dev20241204155957
Python 3.12.7
debug_toolbar Debug Toolbar 4.4.6

Time

Resource usage

Resource Value
User CPU time 68.784 msec
System CPU time 0.000 msec
Total CPU time 68.784 msec
Elapsed time 66.468 msec
Context switches 449 voluntary, 1 involuntary

Browser timing

Timing attribute Timeline Milliseconds since navigation start (+length)

Settings from demo.settings

Setting Value
ABSOLUTE_URL_OVERRIDES {}
ADMINS []
ALLOWED_HOSTS ['*']
APPEND_SLASH True
AUTHENTICATION_BACKENDS '********************'
AUTH_PASSWORD_VALIDATORS '********************'
AUTH_USER_MODEL '********************'
BASE_DIR PosixPath('/home/runner/work/django_admin_tests/django_admin_tests')
CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS 'default'
CACHE_MIDDLEWARE_KEY_PREFIX '********************'
CACHE_MIDDLEWARE_SECONDS 600
CSRF_COOKIE_AGE 31449600
CSRF_COOKIE_DOMAIN None
CSRF_COOKIE_HTTPONLY False
CSRF_COOKIE_NAME 'csrftoken'
CSRF_COOKIE_PATH '/'
CSRF_COOKIE_SAMESITE 'Lax'
CSRF_COOKIE_SECURE False
CSRF_FAILURE_VIEW 'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS []
CSRF_USE_SESSIONS False
DATABASES {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_HEALTH_CHECKS': False, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.sqlite3', 'HOST': '', 'NAME': PosixPath('/home/runner/work/django_admin_tests/django_admin_tests/db.sqlite3'), 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}}
DATABASE_ROUTERS []
DATA_UPLOAD_MAX_MEMORY_SIZE 2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS 1200
DATA_UPLOAD_MAX_NUMBER_FILES 100
DATETIME_FORMAT 'N j, Y, P'
DATETIME_INPUT_FORMATS ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M']
DATE_FORMAT 'N j, Y'
DATE_INPUT_FORMATS ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']
DEBUG True
DEBUG_PROPAGATE_EXCEPTIONS False
DEBUG_TOOLBAR_CONFIG {'SHOW_TOOLBAR_CALLBACK': <function <lambda> at 0x7fae713b0400>}
DECIMAL_SEPARATOR '.'
DEFAULT_AUTO_FIELD 'django.db.models.BigAutoField'
DEFAULT_CHARSET 'utf-8'
DEFAULT_EXCEPTION_REPORTER 'django.views.debug.ExceptionReporter'
DEFAULT_EXCEPTION_REPORTER_FILTER 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FROM_EMAIL 'webmaster@localhost'
DEFAULT_INDEX_TABLESPACE ''
DEFAULT_TABLESPACE ''
DISALLOWED_USER_AGENTS []
EMAIL_BACKEND 'django.core.mail.backends.console.EmailBackend'
EMAIL_HOST 'localhost'
EMAIL_HOST_PASSWORD '********************'
EMAIL_HOST_USER ''
EMAIL_PORT 25
EMAIL_SSL_CERTFILE None
EMAIL_SSL_KEYFILE '********************'
EMAIL_SUBJECT_PREFIX '[Django] '
EMAIL_TIMEOUT None
EMAIL_USE_LOCALTIME False
EMAIL_USE_SSL False
EMAIL_USE_TLS False
FILE_UPLOAD_DIRECTORY_PERMISSIONS None
FILE_UPLOAD_HANDLERS ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE 2621440
FILE_UPLOAD_PERMISSIONS 420
FILE_UPLOAD_TEMP_DIR None
FIRST_DAY_OF_WEEK 0
FIXTURE_DIRS []
FORCE_SCRIPT_NAME None
FORMAT_MODULE_PATH None
FORMS_URLFIELD_ASSUME_HTTPS False
FORM_RENDERER 'django.forms.renderers.DjangoTemplates'
IGNORABLE_404_URLS []
INSTALLED_APPS ['demo', 'debug_toolbar', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.redirects', 'django.contrib.sites', 'django.contrib.admindocs', 'django.contrib.flatpages']
INTERNAL_IPS ['127.0.0.1']
LANGUAGES [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('ckb', 'Central Kurdish (Sorani)'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('ms', 'Malay'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('tk', 'Turkmen'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('ug', 'Uyghur'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')]
LANGUAGES_BIDI ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur']
LANGUAGE_CODE 'en-us'
LANGUAGE_COOKIE_AGE None
LANGUAGE_COOKIE_DOMAIN None
LANGUAGE_COOKIE_HTTPONLY False
LANGUAGE_COOKIE_NAME 'django_language'
LANGUAGE_COOKIE_PATH '/'
LANGUAGE_COOKIE_SAMESITE None
LANGUAGE_COOKIE_SECURE False
LOCALE_PATHS []
LOGGING {}
LOGGING_CONFIG 'logging.config.dictConfig'
LOGIN_REDIRECT_URL '/accounts/profile/'
LOGIN_URL '/accounts/login/'
LOGOUT_REDIRECT_URL None
MANAGERS []
MEDIA_ROOT ''
MEDIA_URL '/'
MESSAGE_STORAGE 'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE ['debug_toolbar.middleware.DebugToolbarMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'demo.middleware.AutoLoginMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware']
MIGRATION_MODULES {}
MONTH_DAY_FORMAT 'F j'
NUMBER_GROUPING 0
PASSWORD_HASHERS '********************'
PASSWORD_RESET_TIMEOUT '********************'
PREPEND_WWW False
ROOT_URLCONF 'demo.urls'
SECRET_KEY '********************'
SECRET_KEY_FALLBACKS '********************'
SECURE_CONTENT_TYPE_NOSNIFF True
SECURE_CROSS_ORIGIN_OPENER_POLICY 'same-origin'
SECURE_HSTS_INCLUDE_SUBDOMAINS False
SECURE_HSTS_PRELOAD False
SECURE_HSTS_SECONDS 0
SECURE_PROXY_SSL_HEADER None
SECURE_REDIRECT_EXEMPT []
SECURE_REFERRER_POLICY 'same-origin'
SECURE_SSL_HOST None
SECURE_SSL_REDIRECT False
SERVER_EMAIL 'root@localhost'
SESSION_CACHE_ALIAS 'default'
SESSION_COOKIE_AGE 1209600
SESSION_COOKIE_DOMAIN None
SESSION_COOKIE_HTTPONLY False
SESSION_COOKIE_NAME 'sessionid'
SESSION_COOKIE_PATH '/'
SESSION_COOKIE_SAMESITE 'Lax'
SESSION_COOKIE_SECURE False
SESSION_ENGINE 'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE False
SESSION_FILE_PATH None
SESSION_SAVE_EVERY_REQUEST False
SESSION_SERIALIZER 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE 'demo.settings'
SHORT_DATETIME_FORMAT 'm/d/Y P'
SHORT_DATE_FORMAT 'm/d/Y'
SIGNING_BACKEND 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS []
SITE_ID 1
STATICFILES_DIRS []
STATICFILES_FINDERS ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATIC_ROOT PosixPath('/home/runner/work/django_admin_tests/django_admin_tests/static')
STATIC_URL '/django_admin_tests/latest/english/static/'
STORAGES {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'}, 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}}
TEMPLATES [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages']}}]
TEST_NON_SERIALIZED_APPS []
TEST_RUNNER 'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR ','
TIME_FORMAT 'P'
TIME_INPUT_FORMATS ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE 'UTC'
USE_I18N True
USE_L10N True
USE_THOUSAND_SEPARATOR False
USE_TZ True
USE_X_FORWARDED_HOST False
USE_X_FORWARDED_PORT False
VARIANT 'English'
VARIANTS ['English', 'German', 'Arabic']
VERSION_NUMBER 'latest'
VERSION_NUMBERS {'latest': 'v5.2.dev20241204155957', 'v2.2': 'v2.2', 'v3.0': 'v3.0', 'v3.1': 'v3.1', 'v3.2': 'v3.2', 'v4.0': 'v4.0', 'v4.1': 'v4.1', 'v4.2': 'v4.2', 'v5.0': 'v5.0', 'v5.1': 'v5.1', 'v5.2': 'v5.2'}
WSGI_APPLICATION 'demo.wsgi.application'
X_FRAME_OPTIONS 'DENY'
YEAR_MONTH_FORMAT 'F Y'

Headers

Request headers

Key Value
Accept */*
Accept-Encoding identity
Connection Keep-Alive
Host localhost:8000
User-Agent Wget/1.21.2

Response headers

Key Value
Content-Length 151608
Content-Type text/html; charset=utf-8
Cross-Origin-Opener-Policy same-origin
Referrer-Policy same-origin
Vary Cookie
X-Content-Type-Options nosniff
X-Frame-Options DENY

WSGI environ

Since the WSGI environ inherits the environment of the server, only a significant subset is shown below.

Key Value
CONTENT_LENGTH
CONTENT_TYPE text/plain
DJANGO_SETTINGS_MODULE demo.settings
GATEWAY_INTERFACE CGI/1.1
PATH_INFO /django_admin_tests/latest/english/defaults/500-template-broken/
QUERY_STRING
REMOTE_ADDR 127.0.0.1
REMOTE_HOST
REQUEST_METHOD GET
SCRIPT_NAME
SERVER_NAME localhost
SERVER_PORT 8000
SERVER_PROTOCOL HTTP/1.1
SERVER_SOFTWARE WSGIServer/0.2
TZ UTC

Request

View information

View function Arguments Keyword arguments URL name
demo.demo_urls.server_error_template_broken () {} <unavailable>

No cookies

No session data

No GET data

No POST data

SQL queries from 0 connections

No SQL queries were recorded during this request.

Static files (134 found, 0 used)

Static file paths

None

Static file apps

  1. debug_toolbar
  2. django.contrib.admin

Static files

None

django.contrib.staticfiles.finders.AppDirectoriesFinder (134 files)

Path Location
debug_toolbar/css/toolbar.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/css/toolbar.css
debug_toolbar/css/print.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/css/print.css
debug_toolbar/js/redirect.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/redirect.js
debug_toolbar/js/toolbar.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.js
debug_toolbar/js/utils.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/utils.js
debug_toolbar/js/timer.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/timer.js
debug_toolbar/js/history.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/history.js
admin/img/calendar-icons.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/calendar-icons.svg
admin/img/icon-unknown-alt.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/icon-unknown-alt.svg
admin/img/icon-alert.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/icon-alert.svg
admin/img/inline-delete.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/inline-delete.svg
admin/img/icon-yes.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/icon-yes.svg
admin/img/search.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/search.svg
admin/img/icon-hidelink.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/icon-hidelink.svg
admin/img/LICENSE /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/LICENSE
admin/img/icon-clock.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/icon-clock.svg
admin/img/icon-changelink.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/icon-changelink.svg
admin/img/tooltag-add.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/tooltag-add.svg
admin/img/sorting-icons.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/sorting-icons.svg
admin/img/icon-deletelink.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/icon-deletelink.svg
admin/img/selector-icons.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/selector-icons.svg
admin/img/README.txt /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/README.txt
admin/img/icon-viewlink.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/icon-viewlink.svg
admin/img/icon-unknown.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/icon-unknown.svg
admin/img/icon-no.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/icon-no.svg
admin/img/icon-addlink.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/icon-addlink.svg
admin/img/icon-calendar.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/icon-calendar.svg
admin/img/tooltag-arrowright.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/tooltag-arrowright.svg
admin/img/gis/move_vertex_on.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg
admin/img/gis/move_vertex_off.svg /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg
admin/css/dashboard.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/css/dashboard.css
admin/css/nav_sidebar.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/css/nav_sidebar.css
admin/css/autocomplete.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/css/autocomplete.css
admin/css/responsive.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/css/responsive.css
admin/css/forms.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/css/forms.css
admin/css/rtl.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/css/rtl.css
admin/css/base.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/css/base.css
admin/css/changelists.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/css/changelists.css
admin/css/responsive_rtl.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/css/responsive_rtl.css
admin/css/widgets.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/css/widgets.css
admin/css/login.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/css/login.css
admin/css/dark_mode.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/css/dark_mode.css
admin/css/unusable_password_field.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/css/unusable_password_field.css
admin/css/vendor/select2/select2.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/css/vendor/select2/select2.css
admin/css/vendor/select2/select2.min.css /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/css/vendor/select2/select2.min.css
admin/css/vendor/select2/LICENSE-SELECT2.md /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md
admin/js/filters.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/filters.js
admin/js/SelectFilter2.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/SelectFilter2.js
admin/js/jquery.init.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/jquery.init.js
admin/js/popup_response.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/popup_response.js
admin/js/core.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/core.js
admin/js/theme.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/theme.js
admin/js/prepopulate.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/prepopulate.js
admin/js/autocomplete.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/autocomplete.js
admin/js/calendar.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/calendar.js
admin/js/nav_sidebar.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/nav_sidebar.js
admin/js/unusable_password_field.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/unusable_password_field.js
admin/js/actions.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/actions.js
admin/js/urlify.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/urlify.js
admin/js/SelectBox.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/SelectBox.js
admin/js/inlines.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/inlines.js
admin/js/prepopulate_init.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/prepopulate_init.js
admin/js/cancel.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/cancel.js
admin/js/change_form.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/change_form.js
admin/js/admin/RelatedObjectLookups.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js
admin/js/admin/DateTimeShortcuts.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js
admin/js/vendor/jquery/LICENSE.txt /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt
admin/js/vendor/jquery/jquery.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js
admin/js/vendor/jquery/jquery.min.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js
admin/js/vendor/xregexp/LICENSE.txt /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt
admin/js/vendor/xregexp/xregexp.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js
admin/js/vendor/xregexp/xregexp.min.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js
admin/js/vendor/select2/LICENSE.md /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md
admin/js/vendor/select2/select2.full.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/select2.full.js
admin/js/vendor/select2/select2.full.min.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js
admin/js/vendor/select2/i18n/zh-CN.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js
admin/js/vendor/select2/i18n/de.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js
admin/js/vendor/select2/i18n/ka.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js
admin/js/vendor/select2/i18n/el.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js
admin/js/vendor/select2/i18n/bn.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js
admin/js/vendor/select2/i18n/nl.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js
admin/js/vendor/select2/i18n/it.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js
admin/js/vendor/select2/i18n/es.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js
admin/js/vendor/select2/i18n/tr.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js
admin/js/vendor/select2/i18n/hi.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js
admin/js/vendor/select2/i18n/hsb.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js
admin/js/vendor/select2/i18n/ca.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js
admin/js/vendor/select2/i18n/fi.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js
admin/js/vendor/select2/i18n/bs.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js
admin/js/vendor/select2/i18n/he.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js
admin/js/vendor/select2/i18n/th.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js
admin/js/vendor/select2/i18n/sk.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js
admin/js/vendor/select2/i18n/id.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js
admin/js/vendor/select2/i18n/is.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js
admin/js/vendor/select2/i18n/zh-TW.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js
admin/js/vendor/select2/i18n/hu.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js
admin/js/vendor/select2/i18n/ps.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js
admin/js/vendor/select2/i18n/fr.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js
admin/js/vendor/select2/i18n/ko.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js
admin/js/vendor/select2/i18n/hr.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js
admin/js/vendor/select2/i18n/lt.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js
admin/js/vendor/select2/i18n/tk.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js
admin/js/vendor/select2/i18n/sv.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js
admin/js/vendor/select2/i18n/nb.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js
admin/js/vendor/select2/i18n/km.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js
admin/js/vendor/select2/i18n/ne.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js
admin/js/vendor/select2/i18n/en.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js
admin/js/vendor/select2/i18n/da.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js
admin/js/vendor/select2/i18n/af.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js
admin/js/vendor/select2/i18n/lv.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js
admin/js/vendor/select2/i18n/ro.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js
admin/js/vendor/select2/i18n/vi.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js
admin/js/vendor/select2/i18n/ms.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js
admin/js/vendor/select2/i18n/sl.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js
admin/js/vendor/select2/i18n/eu.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js
admin/js/vendor/select2/i18n/ar.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js
admin/js/vendor/select2/i18n/pt-BR.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js
admin/js/vendor/select2/i18n/bg.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js
admin/js/vendor/select2/i18n/sr.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js
admin/js/vendor/select2/i18n/et.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js
admin/js/vendor/select2/i18n/ja.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js
admin/js/vendor/select2/i18n/dsb.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js
admin/js/vendor/select2/i18n/sr-Cyrl.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js
admin/js/vendor/select2/i18n/fa.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js
admin/js/vendor/select2/i18n/cs.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js
admin/js/vendor/select2/i18n/hy.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js
admin/js/vendor/select2/i18n/ru.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js
admin/js/vendor/select2/i18n/sq.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js
admin/js/vendor/select2/i18n/pl.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js
admin/js/vendor/select2/i18n/uk.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js
admin/js/vendor/select2/i18n/az.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js
admin/js/vendor/select2/i18n/mk.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js
admin/js/vendor/select2/i18n/pt.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js
admin/js/vendor/select2/i18n/gl.js /home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js

Templates (1 rendered)

Template paths

None

Template

None
<unknown source>
Toggle context {'False': False, 'None': None, 'True': True} {'django_version_info': '5.2.dev20241204155957', 'exception_type': 'TemplateSyntaxError', 'exception_value': "Invalid block tag on line 7: 'unknown_tag_name_foo', " "expected 'endblock'. Did you forget to register or load " 'this tag?', 'filtered_POST_items': [], 'frames': [{'colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^', 'context_line': ' compile_func = ' 'self.tags[command]', 'exc_cause': None, 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py', 'function': 'parse', 'id': 140387122138048, 'lineno': 510, 'post_context': [' except KeyError:', ' ' 'self.invalid_block_tag(token, command, ' 'parse_until)', ' # Compile the callback into a ' 'node object and add it to', ' # the node list.', ' try:', ' compiled_result = ' 'compile_func(self, token)'], 'pre_context': [' # Add the token to the command ' 'stack. This is used for error', ' # messages if further parsing ' 'fails due to an unclosed block', ' # tag.', ' ' 'self.command_stack.append((command, token))', ' # Get the tag callback function ' 'from the ones registered with', ' # the parser.', ' try:'], 'pre_context_lineno': 503, 'tb': <traceback object at 0x7fae6c8bcbc0>, 'tb_area_colno': '\n ^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('self', '<Parser tokens=[<Text token: "...">, <Block token: ' '"endblock...">, <Text token: "</p>...">]>'), ('parse_until', "('endblock',)"), ('nodelist', "[<TextNode: '\\n <p>This is a test.</p>'>]"), ('token', '<Block token: "unknown_tag_name_foo...">'), ('token_type', '2'), ('command', "'unknown_tag_name_foo'")]}, {'colno': '\n ^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' response = get_response(request)', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/core/handlers/exception.py', 'function': 'inner', 'id': 140387122010624, 'lineno': 55, 'post_context': [' except Exception as exc:', ' response = ' 'response_for_exception(request, exc)', ' return response', '', ' return inner', ''], 'pre_context': ['', ' return inner', ' else:', '', ' @wraps(get_response)', ' def inner(request):', ' try:'], 'pre_context_lineno': 48, 'tb': <traceback object at 0x7fae6c89da00>, 'tb_area_colno': '\n ^^^^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('request', '<WSGIRequest: GET ' "'/django_admin_tests/latest/english/defaults/500-template-broken/'>"), ('exc', 'TemplateSyntaxError("Invalid block tag on line 7: ' "'unknown_tag_name_foo', expected 'endblock'. Did you " 'forget to register or load this tag?")'), ('get_response', '<bound method BaseHandler._get_response of ' '<django.core.handlers.wsgi.WSGIHandler object at ' '0x7fae70c8b1d0>>')]}, {'colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' response = ' 'wrapped_callback(request, *callback_args, ' '**callback_kwargs)', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/core/handlers/base.py', 'function': '_get_response', 'id': 140387122009536, 'lineno': 197, 'post_context': [' except Exception as e:', ' response = ' 'self.process_exception_by_middleware(e, ' 'request)', ' if response is None:', ' raise', '', ' # Complain if the view returned None (a ' 'common error).'], 'pre_context': ['', ' if response is None:', ' wrapped_callback = ' 'self.make_view_atomic(callback)', ' # If it is an asynchronous view, run ' 'it in a subthread.', ' if ' 'iscoroutinefunction(wrapped_callback):', ' wrapped_callback = ' 'async_to_sync(wrapped_callback)', ' try:'], 'pre_context_lineno': 190, 'tb': <traceback object at 0x7fae6c89d5c0>, 'tb_area_colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('self', '<django.core.handlers.wsgi.WSGIHandler object at ' '0x7fae70c8b1d0>'), ('request', '<WSGIRequest: GET ' "'/django_admin_tests/latest/english/defaults/500-template-broken/'>"), ('response', 'None'), ('callback', '<function server_error_template_broken at ' '0x7fae6f159120>'), ('callback_args', '()'), ('callback_kwargs', '{}'), ('middleware_method', '<bound method CsrfViewMiddleware.process_view of ' '<CsrfViewMiddleware ' 'get_response=convert_exception_to_response.<locals>.inner>>'), ('wrapped_callback', '<function server_error_template_broken at ' '0x7fae6f159120>')]}, {'colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' return render(request, ' '"demo/broken_template.html")', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/demo/demo_urls.py', 'function': 'server_error_template_broken', 'id': 140387122016960, 'lineno': 45, 'post_context': ['', '', 'def server_error_unicode(request):', ' request.META = {', ' "SERVER_NAME": "Hello",', ' "SERVER_PORT": 1337,'], 'pre_context': ['', '', 'def server_error_template_broken(request):', ' request.META = {', ' "SERVER_NAME": "Hello",', ' "SERVER_PORT": 1337,', ' }'], 'pre_context_lineno': 38, 'tb': <traceback object at 0x7fae6c89f2c0>, 'tb_area_colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'type': 'user', 'vars': [('request', '<WSGIRequest: GET ' "'/django_admin_tests/latest/english/defaults/500-template-broken/'>")]}, {'colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' content = ' 'loader.render_to_string(template_name, context, ' 'request, using=using)', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/shortcuts.py', 'function': 'render', 'id': 140387122007360, 'lineno': 25, 'post_context': [' return HttpResponse(content, content_type, ' 'status)', '', '', 'def redirect(to, *args, permanent=False, ' 'preserve_request=False, **kwargs):', ' """', ' Return an HttpResponseRedirect to the ' 'appropriate URL for the arguments'], 'pre_context': ['def render(', ' request, template_name, context=None, ' 'content_type=None, status=None, using=None', '):', ' """', ' Return an HttpResponse whose content is ' 'filled with the result of calling', ' django.template.loader.render_to_string() ' 'with the passed arguments.', ' """'], 'pre_context_lineno': 18, 'tb': <traceback object at 0x7fae6c89cd40>, 'tb_area_colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('request', '<WSGIRequest: GET ' "'/django_admin_tests/latest/english/defaults/500-template-broken/'>"), ('template_name', "'demo/broken_template.html'"), ('context', 'None'), ('content_type', 'None'), ('status', 'None'), ('using', 'None')]}, {'colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' template = get_template(template_name, ' 'using=using)', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/loader.py', 'function': 'render_to_string', 'id': 140387122012480, 'lineno': 61, 'post_context': [' return template.render(context, request)', '', '', 'def _engine_list(using=None):', ' return engines.all() if using is None else ' '[engines[using]]'], 'pre_context': [' Load a template and render it with a ' 'context. Return a string.', '', ' template_name may be a string or a list of ' 'strings.', ' """', ' if isinstance(template_name, (list, tuple)):', ' template = ' 'select_template(template_name, using=using)', ' else:'], 'pre_context_lineno': 54, 'tb': <traceback object at 0x7fae6c89e140>, 'tb_area_colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('template_name', "'demo/broken_template.html'"), ('context', 'None'), ('request', '<WSGIRequest: GET ' "'/django_admin_tests/latest/english/defaults/500-template-broken/'>"), ('using', 'None')]}, {'colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' return ' 'engine.get_template(template_name)', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/loader.py', 'function': 'get_template', 'id': 140387122011840, 'lineno': 15, 'post_context': [' except TemplateDoesNotExist as e:', ' chain.append(e)', '', ' raise TemplateDoesNotExist(template_name, ' 'chain=chain)', '', ''], 'pre_context': ['', ' Raise TemplateDoesNotExist if no such ' 'template exists.', ' """', ' chain = []', ' engines = _engine_list(using)', ' for engine in engines:', ' try:'], 'pre_context_lineno': 8, 'tb': <traceback object at 0x7fae6c89dec0>, 'tb_area_colno': '\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('template_name', "'demo/broken_template.html'"), ('using', 'None'), ('chain', '[]'), ('engines', '[<django.template.backends.django.DjangoTemplates ' 'object at 0x7fae7024f530>]'), ('engine', '<django.template.backends.django.DjangoTemplates ' 'object at 0x7fae7024f530>')]}, {'colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' return ' 'Template(self.engine.get_template(template_name), ' 'self)', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/backends/django.py', 'function': 'get_template', 'id': 140387122008064, 'lineno': 79, 'post_context': [' except TemplateDoesNotExist as exc:', ' reraise(exc, self)', '', ' def get_templatetag_libraries(self, ' 'custom_libraries):', ' """', ' Return a collation of template tag ' 'libraries from installed'], 'pre_context': [' return errors', '', ' def from_string(self, template_code):', ' return ' 'Template(self.engine.from_string(template_code), ' 'self)', '', ' def get_template(self, template_name):', ' try:'], 'pre_context_lineno': 72, 'tb': <traceback object at 0x7fae6c89d000>, 'tb_area_colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('self', '<django.template.backends.django.DjangoTemplates ' 'object at 0x7fae7024f530>'), ('template_name', "'demo/broken_template.html'")]}, {'colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' template, origin = ' 'self.find_template(template_name)', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/engine.py', 'function': 'get_template', 'id': 140387122006080, 'lineno': 177, 'post_context': [' if not hasattr(template, "render"):', ' # template needs to be compiled', ' template = Template(template, ' 'origin, template_name, engine=self)', ' return template', '', ' def render_to_string(self, template_name, ' 'context=None):'], 'pre_context': [' return Template(template_code, ' 'engine=self)', '', ' def get_template(self, template_name):', ' """', ' Return a compiled Template object for ' 'the given template name,', ' handling template inheritance ' 'recursively.', ' """'], 'pre_context_lineno': 170, 'tb': <traceback object at 0x7fae6c89c840>, 'tb_area_colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('self', '<Engine: app_dirs=True ' "context_processors=['django.template.context_processors.debug', " "'django.template.context_processors.request', " "'django.contrib.auth.context_processors.auth', " "'django.contrib.messages.context_processors.messages'] " 'debug=True ' "loaders=[('django.template.loaders.cached.Loader', " "['django.template.loaders.filesystem.Loader', " "'django.template.loaders.app_directories.Loader'])] " "string_if_invalid='' file_charset='utf-8' " "libraries={'cache': 'django.templatetags.cache', " "'i18n': 'django.templatetags.i18n', 'l10n': " "'django.templatetags.l10n', 'static': " "'django.templatetags.static', 'tz': " "'django.templatetags.tz', 'admin_list': " "'django.contrib.admin.templatetags.admin_list', " "'admin_modify': " "'django.contrib.admin.templatetags.admin_modify', " "'admin_urls': " "'django.contrib.admin.templatetags.admin_urls', 'log': " "'django.contrib.admin.templatetags.log', 'flatpages': " "'django.contrib.flatpages.templatetags.flatpages'} " "builtins=['django.template.defaulttags', " "'django.template.defaultfilters', " "'django.template.loader_tags'] autoescape=True>"), ('template_name', "'demo/broken_template.html'")]}, {'colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' template = ' 'loader.get_template(name, skip=skip)', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/engine.py', 'function': 'find_template', 'id': 140387122014080, 'lineno': 159, 'post_context': [' return template, ' 'template.origin', ' except TemplateDoesNotExist as e:', ' tried.extend(e.tried)', ' raise TemplateDoesNotExist(name, ' 'tried=tried)', '', ' def from_string(self, template_code):'], 'pre_context': [' "Invalid value in template ' 'loaders configuration: %r" % loader', ' )', '', ' def find_template(self, name, dirs=None, ' 'skip=None):', ' tried = []', ' for loader in self.template_loaders:', ' try:'], 'pre_context_lineno': 152, 'tb': <traceback object at 0x7fae6c89e780>, 'tb_area_colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('self', '<Engine: app_dirs=True ' "context_processors=['django.template.context_processors.debug', " "'django.template.context_processors.request', " "'django.contrib.auth.context_processors.auth', " "'django.contrib.messages.context_processors.messages'] " 'debug=True ' "loaders=[('django.template.loaders.cached.Loader', " "['django.template.loaders.filesystem.Loader', " "'django.template.loaders.app_directories.Loader'])] " "string_if_invalid='' file_charset='utf-8' " "libraries={'cache': 'django.templatetags.cache', " "'i18n': 'django.templatetags.i18n', 'l10n': " "'django.templatetags.l10n', 'static': " "'django.templatetags.static', 'tz': " "'django.templatetags.tz', 'admin_list': " "'django.contrib.admin.templatetags.admin_list', " "'admin_modify': " "'django.contrib.admin.templatetags.admin_modify', " "'admin_urls': " "'django.contrib.admin.templatetags.admin_urls', 'log': " "'django.contrib.admin.templatetags.log', 'flatpages': " "'django.contrib.flatpages.templatetags.flatpages'} " "builtins=['django.template.defaulttags', " "'django.template.defaultfilters', " "'django.template.loader_tags'] autoescape=True>"), ('name', "'demo/broken_template.html'"), ('dirs', 'None'), ('skip', 'None'), ('tried', '[]'), ('loader', '<django.template.loaders.cached.Loader object at ' '0x7fae6dd09550>')]}, {'colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' template = ' 'super().get_template(template_name, skip)', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/loaders/cached.py', 'function': 'get_template', 'id': 140387122007488, 'lineno': 57, 'post_context': [' except TemplateDoesNotExist as e:', ' self.get_template_cache[key] = (', ' copy_exception(e) if ' 'self.engine.debug else TemplateDoesNotExist', ' )', ' raise', ' else:'], 'pre_context': [' if isinstance(cached, type) and ' 'issubclass(cached, TemplateDoesNotExist):', ' raise cached(template_name)', ' elif isinstance(cached, ' 'TemplateDoesNotExist):', ' raise copy_exception(cached)', ' return cached', '', ' try:'], 'pre_context_lineno': 50, 'tb': <traceback object at 0x7fae6c89cdc0>, 'tb_area_colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('self', '<django.template.loaders.cached.Loader object at ' '0x7fae6dd09550>'), ('template_name', "'demo/broken_template.html'"), ('skip', 'None'), ('key', "'demo/broken_template.html'"), ('cached', 'None'), ('__class__', "<class 'django.template.loaders.cached.Loader'>")]}, {'colno': '\n ', 'context_line': ' return Template(', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/loaders/base.py', 'function': 'get_template', 'id': 140387122010176, 'lineno': 28, 'post_context': [' contents,', ' origin,', ' origin.template_name,', ' self.engine,', ' )', ''], 'pre_context': ['', ' try:', ' contents = ' 'self.get_contents(origin)', ' except TemplateDoesNotExist:', ' tried.append((origin, "Source ' 'does not exist"))', ' continue', ' else:'], 'pre_context_lineno': 21, 'tb': <traceback object at 0x7fae6c89d840>, 'tb_area_colno': '\n ', 'type': 'django', 'vars': [('self', '<django.template.loaders.cached.Loader object at ' '0x7fae6dd09550>'), ('template_name', "'demo/broken_template.html'"), ('skip', 'None'), ('tried', '[]'), ('origin', '<Origin ' "name='/home/runner/work/django_admin_tests/django_admin_tests/demo/templates/demo/broken_template.html'>"), ('contents', '(\'{% extends "demo/base.html" %}\\n\'\n' " '{% block title %}Broken template{% endblock %}\\n'\n" " '{% block h1 %}Broken template{% endblock %}\\n'\n" " '\\n'\n" " '{% block content %}\\n'\n" " ' <p>This is a test.</p>\\n'\n" " ' <p>{% unknown_tag_name_foo %}</p>\\n'\n" " '{% endblock %}\\n')")]}, {'colno': '\n ^^^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' self.nodelist = self.compile_nodelist()', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py', 'function': '__init__', 'id': 140387118012992, 'lineno': 154, 'post_context': ['', ' def __repr__(self):', ' return \'<%s template_string="%s...">\' ' '% (', ' self.__class__.__qualname__,', ' self.source[:20].replace("\\n", ' '""),', ' )'], 'pre_context': [' engine = Engine.get_default()', ' if origin is None:', ' origin = Origin(UNKNOWN_SOURCE)', ' self.name = name', ' self.origin = origin', ' self.engine = engine', ' self.source = str(template_string) # ' 'May be lazy.'], 'pre_context_lineno': 147, 'tb': <traceback object at 0x7fae6c4cda40>, 'tb_area_colno': '\n ^^^^^^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('self', '<Template template_string="{% extends "demo/bas...">'), ('template_string', '(\'{% extends "demo/base.html" %}\\n\'\n' " '{% block title %}Broken template{% endblock %}\\n'\n" " '{% block h1 %}Broken template{% endblock %}\\n'\n" " '\\n'\n" " '{% block content %}\\n'\n" " ' <p>This is a test.</p>\\n'\n" " ' <p>{% unknown_tag_name_foo %}</p>\\n'\n" " '{% endblock %}\\n')"), ('origin', '<Origin ' "name='/home/runner/work/django_admin_tests/django_admin_tests/demo/templates/demo/broken_template.html'>"), ('name', "'demo/broken_template.html'"), ('engine', '<Engine: app_dirs=True ' "context_processors=['django.template.context_processors.debug', " "'django.template.context_processors.request', " "'django.contrib.auth.context_processors.auth', " "'django.contrib.messages.context_processors.messages'] " 'debug=True ' "loaders=[('django.template.loaders.cached.Loader', " "['django.template.loaders.filesystem.Loader', " "'django.template.loaders.app_directories.Loader'])] " "string_if_invalid='' file_charset='utf-8' " "libraries={'cache': 'django.templatetags.cache', " "'i18n': 'django.templatetags.i18n', 'l10n': " "'django.templatetags.l10n', 'static': " "'django.templatetags.static', 'tz': " "'django.templatetags.tz', 'admin_list': " "'django.contrib.admin.templatetags.admin_list', " "'admin_modify': " "'django.contrib.admin.templatetags.admin_modify', " "'admin_urls': " "'django.contrib.admin.templatetags.admin_urls', 'log': " "'django.contrib.admin.templatetags.log', 'flatpages': " "'django.contrib.flatpages.templatetags.flatpages'} " "builtins=['django.template.defaulttags', " "'django.template.defaultfilters', " "'django.template.loader_tags'] autoescape=True>")]}, {'colno': '\n ^^^^^^^^^^^^^^', 'context_line': ' nodelist = parser.parse()', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py', 'function': 'compile_nodelist', 'id': 140387121899712, 'lineno': 196, 'post_context': [' self.extra_data = parser.extra_data', ' return nodelist', ' except Exception as e:', ' if self.engine.debug:', ' e.template_debug = ' 'self.get_exception_info(e, e.token)', ' raise'], 'pre_context': [' tokens,', ' self.engine.template_libraries,', ' self.engine.template_builtins,', ' self.origin,', ' )', '', ' try:'], 'pre_context_lineno': 189, 'tb': <traceback object at 0x7fae6c8828c0>, 'tb_area_colno': '\n ^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('self', '<Template template_string="{% extends "demo/bas...">'), ('lexer', '<DebugLexer template_string="{% extends "demo/bas...", ' 'verbatim=False>'), ('tokens', '[<Block token: "extends "demo/base.h...">,\n' ' <Text token: "...">,\n' ' <Block token: "block title...">,\n' ' <Text token: "Broken template...">,\n' ' <Block token: "endblock...">,\n' ' <Text token: "...">,\n' ' <Block token: "block h1...">,\n' ' <Text token: "Broken template...">,\n' ' <Block token: "endblock...">,\n' ' <Text token: "...">,\n' ' <Block token: "block content...">,\n' ' <Text token: " <p>This is a test...">,\n' ' <Block token: "unknown_tag_name_foo...">,\n' ' <Text token: "</p>...">,\n' ' <Block token: "endblock...">,\n' ' <Text token: "...">]'), ('parser', '<Parser tokens=[<Text token: "...">, <Block token: ' '"endblock...">, <Text token: "</p>...">]>')]}, {'colno': '\n ^^^^^^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' raise self.error(token, e)', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py', 'function': 'parse', 'id': 140387144017408, 'lineno': 518, 'post_context': [' self.extend_nodelist(nodelist, ' 'compiled_result, token)', ' # Compile success. Remove the ' 'token from the command stack.', ' self.command_stack.pop()', ' if parse_until:', ' ' 'self.unclosed_block_tag(parse_until)', ' return nodelist'], 'pre_context': [' except KeyError:', ' ' 'self.invalid_block_tag(token, command, ' 'parse_until)', ' # Compile the callback into a ' 'node object and add it to', ' # the node list.', ' try:', ' compiled_result = ' 'compile_func(self, token)', ' except Exception as e:'], 'pre_context_lineno': 511, 'tb': <traceback object at 0x7fae6dd9a600>, 'tb_area_colno': '\n ^^^^^^^^^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('self', '<Parser tokens=[<Text token: "...">, <Block token: ' '"endblock...">, <Text token: "</p>...">]>'), ('parse_until', '[]'), ('nodelist', '[]'), ('token', '<Block token: "extends "demo/base.h...">'), ('token_type', '2'), ('command', "'extends'"), ('compile_func', '<function do_extends at 0x7fae707e3740>')]}, {'colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' compiled_result = ' 'compile_func(self, token)', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py', 'function': 'parse', 'id': 140387144013888, 'lineno': 516, 'post_context': [' except Exception as e:', ' raise self.error(token, e)', ' self.extend_nodelist(nodelist, ' 'compiled_result, token)', ' # Compile success. Remove the ' 'token from the command stack.', ' self.command_stack.pop()', ' if parse_until:'], 'pre_context': [' try:', ' compile_func = ' 'self.tags[command]', ' except KeyError:', ' ' 'self.invalid_block_tag(token, command, ' 'parse_until)', ' # Compile the callback into a ' 'node object and add it to', ' # the node list.', ' try:'], 'pre_context_lineno': 509, 'tb': <traceback object at 0x7fae6dd99840>, 'tb_area_colno': '\n' ' ^^^^^^^^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('self', '<Parser tokens=[<Text token: "...">, <Block token: ' '"endblock...">, <Text token: "</p>...">]>'), ('parse_until', '[]'), ('nodelist', '[]'), ('token', '<Block token: "extends "demo/base.h...">'), ('token_type', '2'), ('command', "'extends'"), ('compile_func', '<function do_extends at 0x7fae707e3740>')]}, {'colno': '\n ^^^^^^^^^^^^^^', 'context_line': ' nodelist = parser.parse()', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/loader_tags.py', 'function': 'do_extends', 'id': 140387144022528, 'lineno': 295, 'post_context': [' if nodelist.get_nodes_by_type(ExtendsNode):', ' raise TemplateSyntaxError(', ' "\'%s\' cannot appear more than ' 'once in the same template" % bits[0]', ' )', ' return ExtendsNode(nodelist, parent_name)', ''], 'pre_context': [' the parent template itself (if it evaluates ' 'to a Template object).', ' """', ' bits = token.split_contents()', ' if len(bits) != 2:', ' raise TemplateSyntaxError("\'%s\' takes ' 'one argument" % bits[0])', ' bits[1] = ' 'construct_relative_path(parser.origin.template_name, ' 'bits[1])', ' parent_name = ' 'parser.compile_filter(bits[1])'], 'pre_context_lineno': 288, 'tb': <traceback object at 0x7fae6dd9ba00>, 'tb_area_colno': '\n ^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('parser', '<Parser tokens=[<Text token: "...">, <Block token: ' '"endblock...">, <Text token: "</p>...">]>'), ('token', '<Block token: "extends "demo/base.h...">'), ('bits', '[\'extends\', \'"demo/base.html"\']'), ('parent_name', '<FilterExpression \'"demo/base.html"\'>')]}, {'colno': '\n ^^^^^^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' raise self.error(token, e)', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py', 'function': 'parse', 'id': 140387144022016, 'lineno': 518, 'post_context': [' self.extend_nodelist(nodelist, ' 'compiled_result, token)', ' # Compile success. Remove the ' 'token from the command stack.', ' self.command_stack.pop()', ' if parse_until:', ' ' 'self.unclosed_block_tag(parse_until)', ' return nodelist'], 'pre_context': [' except KeyError:', ' ' 'self.invalid_block_tag(token, command, ' 'parse_until)', ' # Compile the callback into a ' 'node object and add it to', ' # the node list.', ' try:', ' compiled_result = ' 'compile_func(self, token)', ' except Exception as e:'], 'pre_context_lineno': 511, 'tb': <traceback object at 0x7fae6dd9b800>, 'tb_area_colno': '\n ^^^^^^^^^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('self', '<Parser tokens=[<Text token: "...">, <Block token: ' '"endblock...">, <Text token: "</p>...">]>'), ('parse_until', '[]'), ('nodelist', "[<TextNode: '\\n'>,\n" " <Block Node: title. Contents: [<TextNode: 'Broken " "template'>]>,\n" " <TextNode: '\\n'>,\n" " <Block Node: h1. Contents: [<TextNode: 'Broken " "template'>]>,\n" " <TextNode: '\\n\\n'>]"), ('token', '<Block token: "block content...">'), ('token_type', '2'), ('command', "'block'"), ('compile_func', '<function do_block at 0x7fae707e3600>'), ('compiled_result', "<Block Node: h1. Contents: [<TextNode: 'Broken " "template'>]>")]}, {'colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' compiled_result = ' 'compile_func(self, token)', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py', 'function': 'parse', 'id': 140387120953856, 'lineno': 516, 'post_context': [' except Exception as e:', ' raise self.error(token, e)', ' self.extend_nodelist(nodelist, ' 'compiled_result, token)', ' # Compile success. Remove the ' 'token from the command stack.', ' self.command_stack.pop()', ' if parse_until:'], 'pre_context': [' try:', ' compile_func = ' 'self.tags[command]', ' except KeyError:', ' ' 'self.invalid_block_tag(token, command, ' 'parse_until)', ' # Compile the callback into a ' 'node object and add it to', ' # the node list.', ' try:'], 'pre_context_lineno': 509, 'tb': <traceback object at 0x7fae6c79ba00>, 'tb_area_colno': '\n' ' ^^^^^^^^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('self', '<Parser tokens=[<Text token: "...">, <Block token: ' '"endblock...">, <Text token: "</p>...">]>'), ('parse_until', '[]'), ('nodelist', "[<TextNode: '\\n'>,\n" " <Block Node: title. Contents: [<TextNode: 'Broken " "template'>]>,\n" " <TextNode: '\\n'>,\n" " <Block Node: h1. Contents: [<TextNode: 'Broken " "template'>]>,\n" " <TextNode: '\\n\\n'>]"), ('token', '<Block token: "block content...">'), ('token_type', '2'), ('command', "'block'"), ('compile_func', '<function do_block at 0x7fae707e3600>'), ('compiled_result', "<Block Node: h1. Contents: [<TextNode: 'Broken " "template'>]>")]}, {'colno': '\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' nodelist = parser.parse(("endblock",))', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/loader_tags.py', 'function': 'do_block', 'id': 140387120942144, 'lineno': 234, 'post_context': ['', ' # This check is kept for ' 'backwards-compatibility. See #3100.', ' endblock = parser.next_token()', ' acceptable_endblocks = ("endblock", ' '"endblock %s" % block_name)', ' if endblock.contents not in ' 'acceptable_endblocks:', ' parser.invalid_block_tag(endblock, ' '"endblock", acceptable_endblocks)'], 'pre_context': [' if block_name in parser.__loaded_blocks:', ' raise TemplateSyntaxError(', ' "\'%s\' tag with name \'%s\' ' 'appears more than once" % (bits[0], block_name)', ' )', ' ' 'parser.__loaded_blocks.append(block_name)', ' except AttributeError: # ' "parser.__loaded_blocks isn't a list yet", ' parser.__loaded_blocks = [block_name]'], 'pre_context_lineno': 227, 'tb': <traceback object at 0x7fae6c798c40>, 'tb_area_colno': '\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('parser', '<Parser tokens=[<Text token: "...">, <Block token: ' '"endblock...">, <Text token: "</p>...">]>'), ('token', '<Block token: "block content...">'), ('bits', "['block', 'content']"), ('block_name', "'content'")]}, {'colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'context_line': ' ' 'self.invalid_block_tag(token, command, ' 'parse_until)', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py', 'function': 'parse', 'id': 140387120943488, 'lineno': 512, 'post_context': [' # Compile the callback into a ' 'node object and add it to', ' # the node list.', ' try:', ' compiled_result = ' 'compile_func(self, token)', ' except Exception as e:', ' raise self.error(token, e)'], 'pre_context': [' # tag.', ' ' 'self.command_stack.append((command, token))', ' # Get the tag callback function ' 'from the ones registered with', ' # the parser.', ' try:', ' compile_func = ' 'self.tags[command]', ' except KeyError:'], 'pre_context_lineno': 505, 'tb': <traceback object at 0x7fae6c799180>, 'tb_area_colno': '\n' ' ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^', 'type': 'django', 'vars': [('self', '<Parser tokens=[<Text token: "...">, <Block token: ' '"endblock...">, <Text token: "</p>...">]>'), ('parse_until', "('endblock',)"), ('nodelist', "[<TextNode: '\\n <p>This is a test.</p>'>]"), ('token', '<Block token: "unknown_tag_name_foo...">'), ('token_type', '2'), ('command', "'unknown_tag_name_foo'")]}, {'colno': '\n ^', 'context_line': ' raise self.error(', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py', 'function': 'invalid_block_tag', 'id': 140387120952896, 'lineno': 567, 'post_context': [' token,', ' "Invalid block tag on line %d: ' '\'%s\', expected %s. Did you "', ' "forget to register or load ' 'this tag?"', ' % (', ' token.lineno,', ' command,'], 'pre_context': [' e = TemplateSyntaxError(e)', ' if not hasattr(e, "token"):', ' e.token = token', ' return e', '', ' def invalid_block_tag(self, token, command, ' 'parse_until=None):', ' if parse_until:'], 'pre_context_lineno': 560, 'tb': <traceback object at 0x7fae6c79b640>, 'tb_area_colno': '\n ^', 'type': 'django', 'vars': [('self', '<Parser tokens=[<Text token: "...">, <Block token: ' '"endblock...">, <Text token: "</p>...">]>'), ('token', '<Block token: "unknown_tag_name_foo...">'), ('command', "'unknown_tag_name_foo'"), ('parse_until', "('endblock',)")]}], 'is_email': False, 'lastframe': {'colno': '\n ^', 'context_line': ' raise self.error(', 'exc_cause': KeyError('unknown_tag_name_foo'), 'exc_cause_explicit': None, 'filename': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/src/django/django/template/base.py', 'function': 'invalid_block_tag', 'id': 140387120952896, 'lineno': 567, 'post_context': [' token,', ' "Invalid block tag on line ' '%d: \'%s\', expected %s. Did you "', ' "forget to register or load ' 'this tag?"', ' % (', ' token.lineno,', ' command,'], 'pre_context': [' e = TemplateSyntaxError(e)', ' if not hasattr(e, "token"):', ' e.token = token', ' return e', '', ' def invalid_block_tag(self, token, ' 'command, parse_until=None):', ' if parse_until:'], 'pre_context_lineno': 560, 'tb': <traceback object at 0x7fae6c79b640>, 'tb_area_colno': '\n ^', 'type': 'django', 'vars': [('self', '<Parser tokens=[<Text token: "...">, <Block token: ' '"endblock...">, <Text token: "</p>...">]>'), ('token', '<Block token: "unknown_tag_name_foo...">'), ('command', "'unknown_tag_name_foo'"), ('parse_until', "('endblock',)")]}, 'postmortem': None, 'raising_view_name': 'demo.demo_urls.server_error_template_broken', 'request': '<<request>>', 'request_COOKIES_items': dict_items([]), 'request_FILES_items': <generator object MultiValueDict.items at 0x7fae6ddfd970>, 'request_GET_items': <generator object MultiValueDict.items at 0x7fae6ddfd220>, 'request_insecure_uri': 'http://Hello:1337/django_admin_tests/latest/english/defaults/500-template-broken/', 'request_meta': {'SERVER_NAME': 'Hello', 'SERVER_PORT': 1337}, 'server_time': datetime.datetime(2024, 12, 4, 21, 36, 46, 375082, tzinfo=datetime.timezone.utc), 'settings': {'ABSOLUTE_URL_OVERRIDES': {}, 'ADMINS': [], 'ALLOWED_HOSTS': ['*'], 'APPEND_SLASH': True, 'AUTHENTICATION_BACKENDS': '********************', 'AUTH_PASSWORD_VALIDATORS': '********************', 'AUTH_USER_MODEL': '********************', 'BASE_DIR': PosixPath('/home/runner/work/django_admin_tests/django_admin_tests'), 'CACHES': {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}, 'CACHE_MIDDLEWARE_ALIAS': 'default', 'CACHE_MIDDLEWARE_KEY_PREFIX': '********************', 'CACHE_MIDDLEWARE_SECONDS': 600, 'CSRF_COOKIE_AGE': 31449600, 'CSRF_COOKIE_DOMAIN': None, 'CSRF_COOKIE_HTTPONLY': False, 'CSRF_COOKIE_NAME': 'csrftoken', 'CSRF_COOKIE_PATH': '/', 'CSRF_COOKIE_SAMESITE': 'Lax', 'CSRF_COOKIE_SECURE': False, 'CSRF_FAILURE_VIEW': 'django.views.csrf.csrf_failure', 'CSRF_HEADER_NAME': 'HTTP_X_CSRFTOKEN', 'CSRF_TRUSTED_ORIGINS': [], 'CSRF_USE_SESSIONS': False, 'DATABASES': {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_HEALTH_CHECKS': False, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.sqlite3', 'HOST': '', 'NAME': PosixPath('/home/runner/work/django_admin_tests/django_admin_tests/db.sqlite3'), 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}}, 'DATABASE_ROUTERS': [], 'DATA_UPLOAD_MAX_MEMORY_SIZE': 2621440, 'DATA_UPLOAD_MAX_NUMBER_FIELDS': 1200, 'DATA_UPLOAD_MAX_NUMBER_FILES': 100, 'DATETIME_FORMAT': 'N j, Y, P', 'DATETIME_INPUT_FORMATS': ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M'], 'DATE_FORMAT': 'N j, Y', 'DATE_INPUT_FORMATS': ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y'], 'DEBUG': True, 'DEBUG_PROPAGATE_EXCEPTIONS': False, 'DEBUG_TOOLBAR_CONFIG': {'SHOW_TOOLBAR_CALLBACK': <function <lambda> at 0x7fae713b0400>}, 'DECIMAL_SEPARATOR': '.', 'DEFAULT_AUTO_FIELD': 'django.db.models.BigAutoField', 'DEFAULT_CHARSET': 'utf-8', 'DEFAULT_EXCEPTION_REPORTER': 'django.views.debug.ExceptionReporter', 'DEFAULT_EXCEPTION_REPORTER_FILTER': 'django.views.debug.SafeExceptionReporterFilter', 'DEFAULT_FROM_EMAIL': 'webmaster@localhost', 'DEFAULT_INDEX_TABLESPACE': '', 'DEFAULT_TABLESPACE': '', 'DISALLOWED_USER_AGENTS': [], 'EMAIL_BACKEND': 'django.core.mail.backends.console.EmailBackend', 'EMAIL_HOST': 'localhost', 'EMAIL_HOST_PASSWORD': '********************', 'EMAIL_HOST_USER': '', 'EMAIL_PORT': 25, 'EMAIL_SSL_CERTFILE': None, 'EMAIL_SSL_KEYFILE': '********************', 'EMAIL_SUBJECT_PREFIX': '[Django] ', 'EMAIL_TIMEOUT': None, 'EMAIL_USE_LOCALTIME': False, 'EMAIL_USE_SSL': False, 'EMAIL_USE_TLS': False, 'FILE_UPLOAD_DIRECTORY_PERMISSIONS': None, 'FILE_UPLOAD_HANDLERS': ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler'], 'FILE_UPLOAD_MAX_MEMORY_SIZE': 2621440, 'FILE_UPLOAD_PERMISSIONS': 420, 'FILE_UPLOAD_TEMP_DIR': None, 'FIRST_DAY_OF_WEEK': 0, 'FIXTURE_DIRS': [], 'FORCE_SCRIPT_NAME': None, 'FORMAT_MODULE_PATH': None, 'FORMS_URLFIELD_ASSUME_HTTPS': False, 'FORM_RENDERER': 'django.forms.renderers.DjangoTemplates', 'IGNORABLE_404_URLS': [], 'INSTALLED_APPS': ['demo', 'debug_toolbar', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.redirects', 'django.contrib.sites', 'django.contrib.admindocs', 'django.contrib.flatpages'], 'INTERNAL_IPS': ['127.0.0.1'], 'LANGUAGES': [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('ckb', 'Central Kurdish (Sorani)'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('ms', 'Malay'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('tk', 'Turkmen'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('ug', 'Uyghur'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')], 'LANGUAGES_BIDI': ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur'], 'LANGUAGE_CODE': 'en-us', 'LANGUAGE_COOKIE_AGE': None, 'LANGUAGE_COOKIE_DOMAIN': None, 'LANGUAGE_COOKIE_HTTPONLY': False, 'LANGUAGE_COOKIE_NAME': 'django_language', 'LANGUAGE_COOKIE_PATH': '/', 'LANGUAGE_COOKIE_SAMESITE': None, 'LANGUAGE_COOKIE_SECURE': False, 'LOCALE_PATHS': [], 'LOGGING': {}, 'LOGGING_CONFIG': 'logging.config.dictConfig', 'LOGIN_REDIRECT_URL': '/accounts/profile/', 'LOGIN_URL': '/accounts/login/', 'LOGOUT_REDIRECT_URL': None, 'MANAGERS': [], 'MEDIA_ROOT': '', 'MEDIA_URL': '/', 'MESSAGE_STORAGE': 'django.contrib.messages.storage.fallback.FallbackStorage', 'MIDDLEWARE': ['debug_toolbar.middleware.DebugToolbarMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'demo.middleware.AutoLoginMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'], 'MIGRATION_MODULES': {}, 'MONTH_DAY_FORMAT': 'F j', 'NUMBER_GROUPING': 0, 'PASSWORD_HASHERS': '********************', 'PASSWORD_RESET_TIMEOUT': '********************', 'PREPEND_WWW': False, 'ROOT_URLCONF': 'demo.urls', 'SECRET_KEY': '********************', 'SECRET_KEY_FALLBACKS': '********************', 'SECURE_CONTENT_TYPE_NOSNIFF': True, 'SECURE_CROSS_ORIGIN_OPENER_POLICY': 'same-origin', 'SECURE_HSTS_INCLUDE_SUBDOMAINS': False, 'SECURE_HSTS_PRELOAD': False, 'SECURE_HSTS_SECONDS': 0, 'SECURE_PROXY_SSL_HEADER': None, 'SECURE_REDIRECT_EXEMPT': [], 'SECURE_REFERRER_POLICY': 'same-origin', 'SECURE_SSL_HOST': None, 'SECURE_SSL_REDIRECT': False, 'SERVER_EMAIL': 'root@localhost', 'SESSION_CACHE_ALIAS': 'default', 'SESSION_COOKIE_AGE': 1209600, 'SESSION_COOKIE_DOMAIN': None, 'SESSION_COOKIE_HTTPONLY': False, 'SESSION_COOKIE_NAME': 'sessionid', 'SESSION_COOKIE_PATH': '/', 'SESSION_COOKIE_SAMESITE': 'Lax', 'SESSION_COOKIE_SECURE': False, 'SESSION_ENGINE': 'django.contrib.sessions.backends.db', 'SESSION_EXPIRE_AT_BROWSER_CLOSE': False, 'SESSION_FILE_PATH': None, 'SESSION_SAVE_EVERY_REQUEST': False, 'SESSION_SERIALIZER': 'django.contrib.sessions.serializers.JSONSerializer', 'SETTINGS_MODULE': 'demo.settings', 'SHORT_DATETIME_FORMAT': 'm/d/Y P', 'SHORT_DATE_FORMAT': 'm/d/Y', 'SIGNING_BACKEND': 'django.core.signing.TimestampSigner', 'SILENCED_SYSTEM_CHECKS': [], 'SITE_ID': 1, 'STATICFILES_DIRS': [], 'STATICFILES_FINDERS': ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'], 'STATIC_ROOT': PosixPath('/home/runner/work/django_admin_tests/django_admin_tests/static'), 'STATIC_URL': '/django_admin_tests/latest/english/static/', 'STORAGES': {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'}, 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}}, 'TEMPLATES': [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages']}}], 'TEST_NON_SERIALIZED_APPS': [], 'TEST_RUNNER': 'django.test.runner.DiscoverRunner', 'THOUSAND_SEPARATOR': ',', 'TIME_FORMAT': 'P', 'TIME_INPUT_FORMATS': ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'], 'TIME_ZONE': 'UTC', 'USE_I18N': True, 'USE_L10N': True, 'USE_THOUSAND_SEPARATOR': False, 'USE_TZ': True, 'USE_X_FORWARDED_HOST': False, 'USE_X_FORWARDED_PORT': False, 'VARIANT': 'English', 'VARIANTS': ['English', 'German', 'Arabic'], 'VERSION_NUMBER': 'latest', 'VERSION_NUMBERS': {'latest': 'v5.2.dev20241204155957', 'v2.2': 'v2.2', 'v3.0': 'v3.0', 'v3.1': 'v3.1', 'v3.2': 'v3.2', 'v4.0': 'v4.0', 'v4.1': 'v4.1', 'v4.2': 'v4.2', 'v5.0': 'v5.0', 'v5.1': 'v5.1', 'v5.2': 'v5.2'}, 'WSGI_APPLICATION': 'demo.wsgi.application', 'X_FRAME_OPTIONS': 'DENY', 'YEAR_MONTH_FORMAT': 'F Y'}, 'sys_executable': '/home/runner/work/django_admin_tests/django_admin_tests/.venv/bin/python', 'sys_path': ['/home/runner/work/django_admin_tests/django_admin_tests', '/opt/hostedtoolcache/Python/3.12.7/x64/lib/python312.zip', '/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12', '/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/lib-dynload', '/home/runner/work/django_admin_tests/django_admin_tests/.venv/lib/python3.12/site-packages', '__editable__.Django-5.2.dev20241204155957.finder.__path_hook__'], 'sys_version_info': '3.12.7', 'template_does_not_exist': False, 'template_info': {'after': '</p>\n', 'before': ' <p>', 'bottom': 10, 'during': '{% unknown_tag_name_foo %}', 'end': 199, 'line': 7, 'message': 'Invalid block tag on line 7: ' "'unknown_tag_name_foo', expected 'endblock'. " 'Did you forget to register or load this tag?', 'name': '/home/runner/work/django_admin_tests/django_admin_tests/demo/templates/demo/broken_template.html', 'source_lines': [(1, '{% extends "demo/base.html" %}\n'), (2, '{% block title %}Broken template{% ' 'endblock %}\n'), (3, '{% block h1 %}Broken template{% endblock ' '%}\n'), (4, '\n'), (5, '{% block content %}\n'), (6, ' <p>This is a test.</p>\n'), (7, ' <p>{% unknown_tag_name_foo %}</p>\n'), (8, '{% endblock %}\n'), (9, '')], 'start': 173, 'top': 1, 'total': 10}, 'unicode_hint': '', 'user_str': 'AnonymousUser'}

Context processors

None

Alerts

No alerts found

Cache calls from 1 backend

Summary

Total calls Total time Cache hits Cache misses
0 0 ms 0 0

Commands

add get set get_or_set touch delete clear get_many set_many delete_many has_key incr decr incr_version decr_version
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Signals

Signal Receivers
class_prepared
connection_created
got_request_exception
m2m_changed
post_delete
post_init
post_migrate create_permissions, create_contenttypes, create_default_site
post_save
pre_delete clear_site_cache
pre_init
pre_migrate inject_rename_contenttypes_operations
pre_save clear_site_cache
request_finished close_caches, close_old_connections, reset_urlconf
request_started reset_queries, close_old_connections
setting_changed reset_cache, clear_cache_handlers, update_installed_apps, update_connections_time_zone, clear_routers_cache, reset_template_engines, storages_changed, clear_serializers_cache, language_changed, localize_settings_changed, complex_setting_changed, root_urlconf_changed, static_storage_changed, static_finders_changed, form_renderer_changed, auth_password_validators_changed, user_model_swapped, update_toolbar_config, reset_hashers, Options.setting_changed, clear_caches, update_level_tags, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, StaticFilesStorage._clear_cached_properties