【问题标题】:How to change admin templates directory folder如何更改管理模板目录文件夹
【发布时间】:2017-05-18 12:01:23
【问题描述】:

我在项目的 settings.py 文件中的TEMPLATES 设置中为DIRS 设置了一个地址,并且我将APP_DIRS 更改为False

现在,所有模板都将运行,但是当我转到 localhost:8000/admin 时,它会生成一个错误,提示“模板是否存在注释”。

TemplateDoesNotExist at /admin/

管理员/index.html

我不想 APP_DIRS 是真的。 我该如何解决这个问题?

这是设置

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(BASE_DIR, 'templates'),
        ],
        'APP_DIRS': False,
        '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',
            ],
        },
    },
]

【问题讨论】:

  • 你能告诉缩进做APP_DIRS = False吗?

标签: django django-templates django-admin


【解决方案1】:

如果您不希望 APPS_DIR 为 TRUE,copy templates of admin app to your template directory。当您将 APP_DIR 设置为 True 时,django 将检查每个应用程序中名为模板的目录,如果找到则从该目录加载指定的模板。否则 django 将在全局模板目录中检查与 app 同名的目录,如果找到渲染指定模板。

在您的情况下,APP_DIR 设置为 False,并且全局模板文件夹中没有名为 admin 的目录。因此,从虚拟环境的 django/contrib/admin/ 复制模板目录并将其放在全局模板目录中。我想您的全局模板目录在项目目录本身中。

os.path.join(BASE_DIR, 'templates'),

HTH :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 2020-12-06
    • 2017-10-21
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    相关资源
    最近更新 更多