Automitically load component templates from directory where settings.py files is (old style), and from settings.py parent dir (new style).

This commit is contained in:
Emil Stenström 2022-07-17 13:26:27 +02:00
parent 373de73787
commit 58c6e476f1

View file

@ -2,10 +2,25 @@
Template loader that loads templates from each Django app's "components" directory.
"""
from pathlib import Path
from django.conf import settings
from django.template.loaders.filesystem import Loader as FilesystemLoader
from django.template.utils import get_app_template_dirs
class Loader(FilesystemLoader):
def get_dirs(self):
return get_app_template_dirs("components")
component_dir = "components"
directories = list(get_app_template_dirs(component_dir))
settings_path = Path(*settings.SETTINGS_MODULE.split("."))
if (path := (settings_path / ".." / component_dir).resolve()).is_dir():
directories.append(path)
if (
path := (settings_path / ".." / ".." / component_dir).resolve()
).is_dir():
directories.append(path)
return directories