9

私は virtualenv を使用しています。たとえば、プロジェクト フォルダーのルートにテンプレート フォルダーを作成する場合など、 TEMPLATE_DIRSinがどうあるべきかを知りたいです。settings.py

4

6 に答える 6

18

テンプレート フォルダーへの絶対パスを指定する必要があります。Windows でも常にスラッシュを使用してください。

たとえば、プロジェクト フォルダーが "/home/djangouser/projects/myproject" (Linux) または 'C:\projects\myproject\' (Windows) の場合、TEMPLATE_DIRS は次のようになります。

    # for Linux
    TEMPLATE_DIRS = (
        '/home/djangouser/projects/myproject/templates/',
    )

    # or for Windows; use forward slashes!
    TEMPLATE_DIRS = (
        'C:/projects/myproject/templates/',
    )

または、指定した PROJECT_ROOT 変数を使用し、テンプレート フォルダーへの相対パスと結合して絶対パスを生成することもできます。これには、プロジェクトを別の場所にコピーする場合、PROJECT_ROOT を変更するだけでよいという利点があります。動作させるには、os モジュールをインポートする必要があります。

# add at the beginning of settings.py
import os

# ...

TEMPLATE_DIRS = (
    os.path.join(PROJECT_ROOT, 'templates/'),
)
于 2012-08-14T17:03:00.640 に答える
15

新しいバージョンの Django を使用している場合は、それを TEMPLATES の下の settings.py 内にある DIR リストに追加する必要がある場合があります。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['[project name]/templates'], # Replace with your project name
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
于 2016-10-20T04:22:13.870 に答える
3

PROJECT_DIR が定義されていません... PROJECT_DIR は変数ではありません。そのディレクトリ/フォルダー「テンプレート」が配置されている場所へのパス。これは役立つはずです

import os
PROJECT_DIR = os.path.dirname(os.path.dirname(__file__))
TEMPLATE_DIRS = os.path.join(PROJECT_DIR, 'templates')
于 2014-07-11T20:29:41.230 に答える
1

Django 1.9 を使用している場合は、PROJECT_DIR の代わりに BASE_DIR を使用することをお勧めします。

# add at the beginning of settings.py
import os

# ...

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, 'templates/'),
)
于 2016-09-30T06:22:47.463 に答える
1

TEMPLATE_DIRS非推奨 この設定は、Django バージョン 1.8 以降非推奨です。

deprecated

""" settings.py """

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, 'templates/'),
)

correct

""" settings.py """

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [ os.path.join(BASE_DIR, 'templates') ],
        'APP_DIRS': True,
        ...
    },
]
于 2021-07-17T07:10:44.983 に答える