diff --git a/django/template/__init__.py b/django/template/__init__.py index 510b293e79..045ec72529 100644 --- a/django/template/__init__.py +++ b/django/template/__init__.py @@ -41,12 +41,14 @@ Shared: ### Multiple Template Engines +from .engine import Engine + from .utils import EngineHandler engines = EngineHandler() -__all__ = ('engines',) +__all__ = ('Engine', 'engines') ### Django Template Language diff --git a/django/template/engine.py b/django/template/engine.py index 9e9feb70fa..edd731a46c 100644 --- a/django/template/engine.py +++ b/django/template/engine.py @@ -7,7 +7,6 @@ from django.utils.deprecation import RemovedInDjango20Warning from django.utils.functional import cached_property from django.utils.module_loading import import_string -from . import engines from .base import Context, Lexer, Parser, Template, TemplateDoesNotExist from .context import _builtin_context_processors @@ -68,8 +67,10 @@ class Engine(object): >>> template.render(context) 'Hello world!' """ - # Since DjangoTemplates is a wrapper around this Engine class, a local - # import is mandatory to avoid an import loop. + # Since Engine is imported in django.template and since + # DjangoTemplates is a wrapper around this Engine class, + # local imports are required to avoid import loops. + from django.template import engines from django.template.backends.django import DjangoTemplates django_engines = [engine for engine in engines.all() if isinstance(engine, DjangoTemplates)]