Django:基本模板

时间:2016-12-21 11:08:47

标签: django templates template-inheritance

我了解了Django模板继承并正在研究它。

我在与其他模板相同的目录中制作了base_post_login.html模板。

并输入{% extends "base_post_login.html" %}作为子模板中的第一行。

但是当通过后端呈现子模板时,会引发TemplateDoesNotExist错误。

这是settings.py(相关部分):

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [],
    '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',
        ],
    },
},
]

如果所有模板都没有扩展,则会正确呈现所有模板和父模板。

我该怎么办?

1 个答案:

答案 0 :(得分:4)

你正在以错误的方式使用Django extends,它应该采用父模板名称,所以这样做:

{% extends "base.html" %}

修改

好的,我知道,你应该像渲染其他模板一样使用模板路径:

让我们说你像这样渲染" templates / child_page.html"然后你应该以同样的方式扩展{% extends "templates/base.html" %}