扩展myapp base.html-不在我的Django项目中的其他应用程序中扩展

时间:2019-03-18 17:47:00

标签: python django django-templates

我写了一个Django项目,其中包含一些应用程序。我在用户应用程序中创建了base.html,但我将使用文章应用程序中的base.html。 我通常使用{% extends 'base.html' %}并尝试过:

{% extends 'articles:base.html' %} or {% extends 'articles/base.html' %}

以及在myproject / settings.py

TEMPLATES = [
    ...
    'DIRS': [os.path.join(BASE_DIR, 'templates')],
    ...
]

但是他们没有用。

如果有人帮助我,我会很高兴。

1 个答案:

答案 0 :(得分:0)

如果模板位于users/templates/base.html,则可以使用{% extends 'base.html' %}。但是,Django的应用模板加载程序会在找到匹配项后立即停止,因此如果users/templates/base.html设置中的users高于articles,将使用INSTALLED_APPS

因此,Django建议您在应用程序的模板目录中创建子目录。然后将模板另存为users/templates/users/base.htmlarticles/templates/articles/base.html。现在,您可以使用{% extends 'articles/base.html' %}{% extends 'users/base.html' %},并且模板名称不会彼此冲突。