假设有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?
3条答案
按热度按时间von4xj4u1#
如文件所述,
如果在模板中使用
{% extends %}
,则它必须是该模板中的第一个模板标记。这表明
{% extends %}
标记不能放在第二行,也就是说,不能有两个{% extends %}
标记。您的案例可以很容易地解决与
{% include %}
标签。例如:在
a.html
中:在
b.html
中:在
c.html
中:当然,
base_a.html
和base_b.html
应该只包含您希望重用的特定块,而不是完整的HTML模板。nhn9ugyo2#
是的,您可以扩展不同或相同的模板。
例如:
7uhlpewt3#
除了其他答案,一个模板只能扩展一个模板{% extends %},但不能扩展多个模板。
因此,如果一个模板尝试使用
{% extends %}
扩展多个模板,如下所示:然后,发生以下错误:
“extends”不能在同一模板中出现多次