【发布时间】:2018-10-27 11:25:41
【问题描述】:
我有一个模板,我希望可以从 include 访问该模板,也可以通过 extends 作为独立页面访问。
有一个Base.html:
<!-- some html, navbar -->
{% block content %}
{% endblock %}
<!-- footer and other stuff -->
有一个HomePage.html:
{% extends 'Base.html' %}
{% block content %}
<!-- some HomePage content -->
{% endblock %}
有一个MyTemplate.html:
{% extends 'Base.html' %}
{% block content %}
<!-- some content from MyTemplate -->
{% endblock %}
我想要的是将MyTemplate.html 的内容添加到主页。如果我将{% include 'MyTemplate.html' %} 添加到HomePage.html,那么我将获得两个导航栏,因为Base.html 被扩展了两次。但我仍然需要MyTemplate.html 可以作为带有导航栏和其他Base.html 内容的独立页面访问。
如果模板包含在另一个模板中,如何忽略{% extends %}?
目前,作为一种解决方法,我添加了另一个文件,比如MyPage.html。此文件扩展 Base.html 并包含 MyTemplate.html。 HomePage.html 还包括 MyTemplate.html 和 MyTemplate.html 不扩展任何东西。我只是想知道是否有更合适的方式来做我想做的事。
UPD:我使用两种视图。其中一个使用HomePage.html,另一个使用MyTemplate.html(目前为MyPage.html)。
【问题讨论】:
-
我不明白...您的视图是否使用了
MyTemplate.html? -
@seuling 有一个视图使用
MyTemplate.html,另一个视图使用HomePage.html。
标签: django django-templates include extends