diff --git a/django/template/loaders/cached.py b/django/template/loaders/cached.py index 2ee659127e5..bb47682d7f9 100644 --- a/django/template/loaders/cached.py +++ b/django/template/loaders/cached.py @@ -18,6 +18,11 @@ class Loader(BaseLoader): self.loaders = engine.get_template_loaders(loaders) super().__init__(engine) + def get_dirs(self): + for loader in self.loaders: + if hasattr(loader, "get_dirs"): + yield from loader.get_dirs() + def get_contents(self, origin): return origin.loader.get_contents(origin) diff --git a/tests/template_tests/test_loaders.py b/tests/template_tests/test_loaders.py index 258b18fca0a..6f9c4c938e6 100644 --- a/tests/template_tests/test_loaders.py +++ b/tests/template_tests/test_loaders.py @@ -93,6 +93,10 @@ class CachedLoaderTests(SimpleTestCase): """ self.assertEqual(self.engine.template_loaders[0].cache_key(lazystr('template.html'), []), 'template.html') + def test_get_dirs(self): + inner_dirs = self.engine.template_loaders[0].loaders[0].get_dirs() + self.assertSequenceEqual(list(self.engine.template_loaders[0].get_dirs()), list(inner_dirs)) + class FileSystemLoaderTests(SimpleTestCase):