我写了一个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')],
...
]
但是他们没有用。
如果有人帮助我,我会很高兴。
答案 0 :(得分:0)
如果模板位于users/templates/base.html
,则可以使用{% extends 'base.html' %}
。但是,Django的应用模板加载程序会在找到匹配项后立即停止,因此如果users/templates/base.html
设置中的users
高于articles
,将使用INSTALLED_APPS
。
因此,Django建议您在应用程序的模板目录中创建子目录。然后将模板另存为users/templates/users/base.html
和articles/templates/articles/base.html
。现在,您可以使用{% extends 'articles/base.html' %}
和{% extends 'users/base.html' %}
,并且模板名称不会彼此冲突。