Django - 一个模板可以扩展两个或更多模板吗?

전세진*_*전세진 0 django templates extends multiple-inheritance

比方说,有base_a.html,base_b.html,a.html,b.html,c.html.

a.html扩展base_a.html和b.html扩展base_b.html.
并且c.html必须延伸base_a.html和base_b.html.

如果您认为base_a.html包含回复功能并base_b.html包含搜索功能,则更容易理解这种情况.

我可以在Django模板中使用多重继承吗?
或者我是否必须使用include而不是extends?

Los*_*ses 10

正如文档中所述,

如果{% extends %}在模板中使用,则它必须是该模板中的第一个模板标记.

这表明{% extends %}标签不能放在第二行,也就是说,你不能有两个{% extends %}标签.

您的案例可以通过{% include %}标签轻松解决.例如:

在a.html:

{% include 'base_a.html' %}
Run Code Online (Sandbox Code Playgroud)

在b.html:

{% include 'base_b.html' %}
Run Code Online (Sandbox Code Playgroud)

在c.html:

{% include 'base_a.html' %}
{% include 'base_b.html' %}
Run Code Online (Sandbox Code Playgroud)

当然,base_a.html并且base_b.html应该只包含要重用的特定块,而不是完整的HTML模板.