Commit 6aa1a316 authored by Florian Apolloner's avatar Florian Apolloner
Browse files

Properly app_template_dirs when INSTALLED_APPS change.

parent 025ec2e7
Loading
Loading
Loading
Loading
+15 −12
Original line number Diff line number Diff line
@@ -13,7 +13,8 @@ from django.template.loader import BaseLoader
from django.utils._os import safe_join
from django.utils import six

# At compile time, cache the directories to search.

def calculate_app_template_dirs():
    if six.PY2:
        fs_encoding = sys.getfilesystemencoding() or sys.getdefaultencoding()
    app_template_dirs = []
@@ -23,9 +24,11 @@ for app_config in apps.get_app_configs():
            if six.PY2:
                template_dir = template_dir.decode(fs_encoding)
            app_template_dirs.append(template_dir)
    return tuple(app_template_dirs)

# It won't change, so convert it to a tuple to save memory.
app_template_dirs = tuple(app_template_dirs)

# At compile time, cache the directories to search.
app_template_dirs = calculate_app_template_dirs()


class Loader(BaseLoader):
+3 −0
Original line number Diff line number Diff line
@@ -33,6 +33,9 @@ def update_installed_apps(**kwargs):
        # Rebuild any AppDirectoriesFinder instance.
        from django.contrib.staticfiles.finders import get_finder
        get_finder.cache_clear()
        # Rebuild app_template_dirs cache.
        from django.template.loaders import app_directories as mod
        mod.app_template_dirs = mod.calculate_app_template_dirs()


@receiver(setting_changed)