Django中一个模板可以扩展多个模板吗?

dwbf0jvd  于 2023-05-19  发布在  Go
关注(0)|答案(3)|浏览(184)

假设有base_a.htmlbase_b.htmla.htmlb.htmlc.html
a.html扩展base_a.htmlb.html扩展base_b.html
c.html必须扩展base_a.htmlbase_b.html
如果你认为base_a.html包含回复功能,而base_b.html包含搜索功能,那么这种情况就更容易理解了。
我可以在Django模板中使用多重继承吗?
或者我必须使用include而不是extends?

von4xj4u

von4xj4u1#

如文件所述,
如果在模板中使用{% extends %},则它必须是该模板中的第一个模板标记。
这表明{% extends %}标记不能放在第二行,也就是说,不能有两个{% extends %}标记。
您的案例可以很容易地解决与{% include %}标签。例如:
a.html中:

{% include 'base_a.html' %}

b.html中:

{% include 'base_b.html' %}

c.html中:

{% include 'base_a.html' %}
{% include 'base_b.html' %}

当然,base_a.htmlbase_b.html应该只包含您希望重用的特定块,而不是完整的HTML模板。

nhn9ugyo

nhn9ugyo2#

是的,您可以扩展不同或相同的模板。
例如:

{% extends "base.html" %}
{%     block content     %}

    <h1>Content goes here</h1>

{% include 'base.html' %}
{% endblock %}

7uhlpewt

7uhlpewt3#

除了其他答案,一个模板只能扩展一个模板{% extends %},但不能扩展多个模板。
因此,如果一个模板尝试使用{% extends %}扩展多个模板,如下所示:

# "templates/index.html"

{% extends "base1.html" %}
{% extends "base2.html" %}

然后,发生以下错误:
“extends”不能在同一模板中出现多次

相关问题