python – Django:TEMPLATE_DIRS与INSTALLED_APPS

我目前只是将应用程序添加到INSTALLED_APPS以便能够使用该应用程序中的模板,但也有TEMPLATE_DIRS设置.我何时更喜欢TEMPLATE_DIRS而不是INSTALLED_APPS? 最佳答案 您可以使用TEMPLATE_DIRS中的模板来覆盖来自应用程序的模板(通过赋予它们相同的名称),或者使用与多个应用程序相关的模板(base.html可以想到).

这是因为模板加载器在TEMPLATE_LOADERS(app_directories之前的文件系统)中设置的顺序.

以下列方式组织模板是个好主意,以避免名称冲突:

<project>/
    <app1>/templates/<app1>/
        foo.html
        bar.html
    <app2>/templates/<app2>/
        foo.html
    templates/
        <app1>/
            foo.html
        base.html
        xyzzy.html
点赞