【问题标题】:After installing jinja2 TemplateDoesNotExist at /admin/在 /admin/ 安装 jinja2 TemplateDoesNotExist 后
【发布时间】:2017-12-07 00:33:19
【问题描述】:

我已经安装了 jinja2,之后“DIRS”停止工作(我必须手动将它们包括在内)。 更改“APP_DIRS”没有帮助

模板看起来像这样:

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.jinja2.Jinja2',
    'APP_DIRS': False,
    'DIRS': ['main/templates', 'shop/templates'],
    'OPTIONS': {
        'environment': 'django_test.create_jinjia_env.environment',
        'autoescape': True,
        'auto_reload': DEBUG,
        'context_processors': [
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
        ],
    },
},
]

如果不将模板包含在 DIRS 中,则会引发相同的错误

没有找到这样的问题。提前致谢!

【问题讨论】:

    标签: python django jinja2 django-settings


    【解决方案1】:

    Django 管理应用程序不附带 Jinja 模板。如果您想使用 Jinja 和管理应用程序,您需要在 TEMPLATES 设置中包含这两个引擎:

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [],
            'APP_DIRS': True,  # This allows Django to find the templates in the admin app
            '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',
                ],
            },
        },
        {
            'BACKEND': 'django.template.backends.jinja2.Jinja2',
            # The rest of your Jinja2 settings.
        },
    

    其次,当APP_DIRS为True时,Jinja2后端looks for templates in a jinja2 subdirectory。这意味着你应该把你的模板放在main/jinja2shop/jinja2而不是main/templatesshop/templates

    【讨论】:

    • 感谢您的帮助和简洁!
    • 另外,如果您使用 Jinja 继承现有应用程序并且事后无法打开 Admin,请查看此答案:stackoverflow.com/a/49980601/1025430
    • 注意:请注意,2 个条目的顺序可能很重要。就我而言,如果我将 DjangoTemplates 放在首位,管理员可以工作,但 Jinja 页面却不行;如果我反其道而行之,那么两者都有效。
    猜你喜欢
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    • 2017-09-03
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多