4

ジェネリックListViewクラスを使用すると、Djangoが「appname/templates」フォルダー内で「appname/objectname_list.html」を検索するため、少し混乱しました。これにより、次のようになります。

appname/templates/appname/objectname_list.html

「template_name」を指定すると、templatesフォルダー内のサブフォルダーは不要になります。

1.3の以前のように、「templates」フォルダ内にobjectname_list.htmlが見つからないのはなぜですか?何か間違った設定をしましたか、それともテンプレートを配置する場所を変更しましたか?1.3では、サブフォルダーを使用する代わりに、テンプレートのhtmlファイルを「appname/templates」内に直接配置していました。

私にとっては、テンプレートフォルダーが既に存在するアプリの名前で別のサブフォルダーを使用することは意味がありません。または、何か便利なものがありませんか?

リリースノートには何も見つかりませんでした。

4

1 に答える 1

5

これは1.4固有ではないと思います。テンプレートをサブフォルダーに入れる場合は、次のように指定しますtemplate_name = 'subfolde/template.html'

テンプレートdirについては、ドキュメントから:

... INSTALLED_APPS内のアプリごとに、ローダーはテンプレートサブディレクトリを探します。ディレクトリが存在する場合、Djangoはそこでテンプレートを探します。

したがって、実際のディレクトリは次のとおりです。

projectname/appname/templates/appname/objectname_list.html
            ^^^               ^^^

これにより、すべてをアプリフォルダー内に保持でき、何も構成する必要がなくなります。

これは、アプリがある場合fooでもbar、アプリの1つの下に1bazつのディレクトリを持つことができることを意味します。templates

myproj/foo/templates/foo/...
myproj/foo/templates/bar/...
myproj/foo/templates/baz/...
于 2012-04-07T12:47:53.153 に答える