Django 模板查找顺序

标签 django templates path django-floppyforms

我正在编写一个应用程序,它使用 django-floppyforms 。另外,我的应用程序提供了默认的 twitter bootstrap皮肤,所以我在我的应用程序中自定义了 floppyforms 模板,以使它们能够类似地引导。我把floppyforms/{layouts, rows}/bootstrap进入我的应用程序的模板目录。但它不起作用:django 不会使用它们。所以,我不想强​​制最终用户将自定义模板放入他的项目中,事实上,我想指出 django 获取我本地的 floppyforms呈现应用内内容时的模板。我只是想让我的应用程序独立,没有任何不方便的依赖项。

更新

现在我也遇到了类似的问题 django-admintools-bootstrapDjango 1.5.1 。之前添加过admin_toolsINSTALLED_APPS ,但是没有任何效果。此外,它不会收集 django-admintools-bootstrap 的静态信息。 。在使用这两个包和 Django 1.4 的其他类似项目中,一切正常。另外,我还检查了 Django 1.5 的发行说明中的​​模板查找顺序更改,但没有发现任何相关内容。

最佳答案

更新的答案:

从 Django 1.8 开始,TEMPLATE_DIRSTEMPLATE_LOADERS已弃用并替换为 TEMPLATES .

TEMPLATES 的示例可以是:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(BASE_DIR, 'templates'),
        ],
        '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',
            ],
            # 'loaders': [
            #     'django.template.loaders.filesystem.Loader',
            #     'django.template.loaders.app_directories.Loader',
            # ],
            'debug': True,
        },
    },
]

模板查找顺序由以下各项决定:

  • 本质上最重要的地方是 loaders OPTIONS 的选项。如果定义了此值,则需要 APP_DIRS未设置并遵循任何明确的顺序。

  • 如果没有加载程序,如果有的话DIRS定义后,它们具有作为文件系统加载器的优先级。

  • 如果没有加载程序,则 APP_DIRS已定义,这些优先级高于 DIRS .

上述内容没有明确记录,但可以通过现有文档轻松推断,也许经过一些实验后可以推断出来。

关于Django 模板查找顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18029547/

相关文章:

java - Java中如何从路径中获取目录名称?

Docker容器: pip is not found even though I have set the PATH during building

macos - 为什么 tempdir() 在 osx 的目录树末尾添加了额外的斜杠?

c++ - 模板 C++ 类声明中的类型/值不匹配

javascript - 如何使用 Mustache.js 在下拉列表中设置选定的值?

c++ - Const 和非常量访问解析为不同的重载?

Django 1.6,干草堆 : How to print the search's time?

python - Django Admin 嵌套内联

python - Django channel 。如何使用子协议(protocol)响应 WebSocket 打开请求?

Django admin - 如何在模板标签中获取所有注册的模型?