niwinz / django-jinja

Simple and nonobstructive jinja2 integration with Django.
http://niwinz.github.io/django-jinja/latest/
BSD 3-Clause "New" or "Revised" License
360 stars 102 forks source link

jinja2 3.1.0 breaks backend.py #294

Closed ma-adrian closed 2 years ago

ma-adrian commented 2 years ago

Hi, I just tried to update my jinja2 version from 3.0.3 to 3.1.0. I'm not entirely sure if this is a django or django-jinja problem but it seems like the new version is breaking stuff in backend.py

Traceback (most recent call last):
  File "/.host_virtualenv/lib/python3.10/site-packages/django/template/utils.py", line 69, in __getitem__
    return self._engines[alias]
KeyError: 'backend'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/.host_virtualenv/lib/python3.10/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line
    utility.execute()
  File "/.host_virtualenv/lib/python3.10/site-packages/django/core/management/__init__.py", line 440, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/.host_virtualenv/lib/python3.10/site-packages/django/core/management/commands/test.py", line 24, in run_from_argv
    super().run_from_argv(argv)
  File "/.host_virtualenv/lib/python3.10/site-packages/django/core/management/base.py", line 414, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/.host_virtualenv/lib/python3.10/site-packages/django/core/management/base.py", line 460, in execute
    output = self.handle(*args, **options)
  File "/.host_virtualenv/lib/python3.10/site-packages/django/core/management/commands/test.py", line 68, in handle
    failures = test_runner.run_tests(test_labels)
  File "/.host_virtualenv/lib/python3.10/site-packages/django/test/runner.py", line 1006, in run_tests
    self.run_checks(databases)
  File "/.host_virtualenv/lib/python3.10/site-packages/django/test/runner.py", line 925, in run_checks
    call_command("check", verbosity=self.verbosity, databases=databases)
  File "/.host_virtualenv/lib/python3.10/site-packages/django/core/management/__init__.py", line 198, in call_command
    return command.execute(*args, **defaults)
  File "/.host_virtualenv/lib/python3.10/site-packages/django/core/management/base.py", line 460, in execute
    output = self.handle(*args, **options)
  File "/.host_virtualenv/lib/python3.10/site-packages/django/core/management/commands/check.py", line 76, in handle
    self.check(
  File "/.host_virtualenv/lib/python3.10/site-packages/django/core/management/base.py", line 487, in check
    all_issues = checks.run_checks(
  File "/.host_virtualenv/lib/python3.10/site-packages/django/core/checks/registry.py", line 88, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
  File "/.host_virtualenv/lib/python3.10/site-packages/django/contrib/admin/checks.py", line 78, in check_dependencies
    for engine in engines.all():
  File "/.host_virtualenv/lib/python3.10/site-packages/django/template/utils.py", line 94, in all
    return [self[alias] for alias in self]
  File "/.host_virtualenv/lib/python3.10/site-packages/django/template/utils.py", line 94, in <listcomp>
    return [self[alias] for alias in self]
  File "/.host_virtualenv/lib/python3.10/site-packages/django/template/utils.py", line 85, in __getitem__
    engine = engine_cls(params)
  File "/.host_virtualenv/lib/python3.10/site-packages/django_jinja/backend.py", line 188, in __init__
    self.env = environment_cls(**options)
  File "/.host_virtualenv/lib/python3.10/site-packages/jinja2/environment.py", line 363, in __init__
    self.extensions = load_extensions(self, extensions)
  File "/.host_virtualenv/lib/python3.10/site-packages/jinja2/environment.py", line 117, in load_extensions
    extension = t.cast(t.Type["Extension"], import_string(extension))
  File "/.host_virtualenv/lib/python3.10/site-packages/jinja2/utils.py", line 149, in import_string
    return getattr(__import__(module, None, None, [obj]), obj)
AttributeError: module 'jinja2.ext' has no attribute 'with_'
ma-adrian commented 2 years ago

The problem was related to my project because of using jinja2.ext.with_ and jinja2.ext.autoescape which were deprecated. Sorry for the inconvenience.

bschollnick commented 1 year ago

So has this been fixed?

I am able to reproduce this issue with Django v4.1.3, Django-Jinja2 v2.10.2, and Jinja2 v3.1.2?

The implication is that on March 29th, this was a non-issue? But it's still happening 11/22/2022? Does a release need to be made? Does it need to be released to PyPi?