10

TEMPLATE_DIRS = ('/path/to/templates/',)

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
)

TEMPLATE_DIRSこれらの場所 (または)のいずれかに指定したディレクトリの内容を一覧表示するソリューションを見つけようとしていますTEMPLATE_LOADERS

次のようなものが必要です:

template_files = []
for dir in EVERY_DIRECTORY_DJANGO_LOOKS_FOR_TEMPLATES_IN:
    template_files.append(os.listdir(dir))
4

3 に答える 3

4

テンプレートは基本テンプレートの場所の下にネストされたディレクトリにある可能性があるため、 os.walkを使用して必要なテンプレートを取得することをお勧めします。これは基本的に、os.listdirディレクトリに続くラッパーです。

django.template.loaders.app_directories.app_template_dirsは、すべてのアプリ テンプレート ディレクトリの内部タプルであり、TEMPLATE_DIRSによって使用される設定ですdjango.template.loaders.filesystem.Loader

次のコードは、テンプレート ディレクトリで使用可能なすべてのファイルのリストを生成する必要があります (これには、テンプレート以外のファイルが含まれる場合があります)。

from django.conf import settings
from django.template.loaders.app_directories import app_template_dirs

import os

template_files = []
for template_dir in (settings.TEMPLATE_DIRS + app_template_dirs):
    for dir, dirnames, filenames in os.walk(template_dir):
        for filename in filenames:
            template_files.append(os.path.join(dir, filename))
于 2013-06-14T16:24:17.027 に答える