1

Django 開発サーバーに次の設定でテンプレートをロードさせようとしていますが、エラーがスローされます

TemplateDoesNotExist at /

homepage/index.html

以下は、これを機能させるために編集したファイルです

blog/blog/settings.py - (この質問に関する部分をカット)

import os

TEMPLATE_DIRS = (
os.path.join( os.path.dirname(__file__), 'templates' ),
)

ブログ/アプリ/ホームページ/views.py

from django.shortcuts import render_to_response

def index(request):
    return render_to_response('homepage/index.html')

これを修正する方法について何か考えはありますか?

4

3 に答える 3

2

デフォルトでは、Django は 2 つのテンプレート ローダーを使用してテンプレートを見つけます。

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

最初に、ファイルシステム ローダーは TEMPLATE_DIRS 内のすべてのディレクトリをチェックして、指定されたテンプレートを見つけることができるかどうかを確認します。それが失敗した場合、app_directories ローダーは現在のアプリの /templates/ ディレクトリで名前付きテンプレートを探します。このようにして、簡単にオーバーライドできる再利用可能なアプリを含む既定のテンプレートを出荷できます。

あなたの場合、Djangoはここでテンプレートを探します:

blog/blog/templates/homepage/index.html
blog/apps/homepage/templates/homepage/index.html
于 2013-01-04T19:50:36.117 に答える
1

あなたはあなたに間違った方向を与えますTEMPLATE_DIRSsettings.pyファイルはblogプロジェクトのパッケージにありますblogが、templatesフォルダはパッケージblogではなくプロジェクトにありblogます。プロジェクトの絶対ディレクトリを指定して、それに参加する必要がありますtemplates

于 2013-01-04T19:23:43.107 に答える
0

django 1.10 では、親プロジェクト ディレクトリの path/to/settings.py に移動し、次を探します。

TEMPLATES = [.....]オプションで path/to/project_directory を指定しDIR:ます

たとえば(私の場合):

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [
        '/xampp/htdocs/advisory_portal'
    ],
    '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-08-29T22:43:50.970 に答える