Skip to content

TypeError with Django 4.1 #211

@kbayliss

Description

@kbayliss

Issue Summary

Using with latest Django causes a TypeError (traceback below) that prevents the pattern library from rendering patterns.

Technical details

  • Python: 3.11.2
  • Django: 4.1.7
Traceback
11:09:06 web.1      | Traceback (most recent call last):
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/core/handlers/exception.py", line 56, in inner
11:09:06 web.1      |     response = get_response(request)
11:09:06 web.1      |                ^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/core/handlers/base.py", line 197, in _get_response
11:09:06 web.1      |     response = wrapped_callback(request, *callback_args, **callback_kwargs)
11:09:06 web.1      |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/views/decorators/cache.py", line 62, in _wrapped_view_func
11:09:06 web.1      |     response = view_func(request, *args, **kwargs)
11:09:06 web.1      |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/views/generic/base.py", line 103, in view
11:09:06 web.1      |     return self.dispatch(request, *args, **kwargs)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/views/generic/base.py", line 142, in dispatch
11:09:06 web.1      |     return handler(request, *args, **kwargs)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/utils/decorators.py", line 46, in _wrapper
11:09:06 web.1      |     return bound_method(*args, **kwargs)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/views/decorators/clickjacking.py", line 36, in wrapped_view
11:09:06 web.1      |     resp = view_func(*args, **kwargs)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/pattern_library/views.py", line 95, in get
11:09:06 web.1      |     rendered_pattern = render_pattern(request, pattern_template_name)
11:09:06 web.1      |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/pattern_library/utils.py", line 227, in render_pattern
11:09:06 web.1      |     return render_to_string(template_name, request=request, context=context)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/template/loader.py", line 62, in render_to_string
11:09:06 web.1      |     return template.render(context, request)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/template/backends/django.py", line 61, in render
11:09:06 web.1      |     return self.template.render(context)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/template/base.py", line 175, in render
11:09:06 web.1      |     return self._render(context)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/test/utils.py", line 111, in instrumented_test_render
11:09:06 web.1      |     return self.nodelist.render(context)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in render
11:09:06 web.1      |     return SafeString("".join([node.render_annotated(context) for node in self]))
11:09:06 web.1      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in <listcomp>
11:09:06 web.1      |     return SafeString("".join([node.render_annotated(context) for node in self]))
11:09:06 web.1      |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/template/base.py", line 966, in render_annotated
11:09:06 web.1      |     return self.render(context)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/pattern_library/loader_tags.py", line 38, in render
11:09:06 web.1      |     return super().render(context)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/template/loader_tags.py", line 157, in render
11:09:06 web.1      |     return compiled_parent._render(context)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/test/utils.py", line 111, in instrumented_test_render
11:09:06 web.1      |     return self.nodelist.render(context)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in render
11:09:06 web.1      |     return SafeString("".join([node.render_annotated(context) for node in self]))
11:09:06 web.1      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in <listcomp>
11:09:06 web.1      |     return SafeString("".join([node.render_annotated(context) for node in self]))
11:09:06 web.1      |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/template/base.py", line 966, in render_annotated
11:09:06 web.1      |     return self.render(context)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/pattern_library/loader_tags.py", line 38, in render
11:09:06 web.1      |     return super().render(context)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/template/loader_tags.py", line 157, in render
11:09:06 web.1      |     return compiled_parent._render(context)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/test/utils.py", line 111, in instrumented_test_render
11:09:06 web.1      |     return self.nodelist.render(context)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in render
11:09:06 web.1      |     return SafeString("".join([node.render_annotated(context) for node in self]))
11:09:06 web.1      |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in <listcomp>
11:09:06 web.1      |     return SafeString("".join([node.render_annotated(context) for node in self]))
11:09:06 web.1      |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/template/base.py", line 966, in render_annotated
11:09:06 web.1      |     return self.render(context)
11:09:06 web.1      |            ^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/template/loader_tags.py", line 63, in render
11:09:06 web.1      |     result = block.nodelist.render(context)
11:09:06 web.1      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      |   File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in render
11:09:06 web.1      |     return SafeString("".join([node.render_annotated(context) for node in self]))
11:09:06 web.1      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11:09:06 web.1      | TypeError: sequence item 3: expected str instance, NoneType found

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingdjangoRelated to Django templates capabilities

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions