动态更改Django模板继承?

sin*_*inθ 4 python django django-templates

我有一个模板,其中包含以下内容:{% extends "main/main-template.html" %} 我还想要一个完全相同的模板,而不是它{% extends "main/main-template-quick.html" %}只是将相同的代码复制并粘贴到新文件中似乎违反DRY,这样我就可以更改模板了.有没有办法动态选择超级模板?

如果没有,是否有一个很好的方法来执行以下操作:使用{% block %}不同的模板重用相同的内容.同时,不要违反DRY.

我也对其他能够做到这一点的模板语言持开放态度.

ari*_*rie 6

如果您检查文档,您将看到也extends接受变量.

{%extends variable%}使用变量的值.如果变量求值为字符串,Django将使用该字符串作为父模板的名称.

因此,您可以轻松地在视图中确定适当的基本模板,并将其传递给模板.

如果你想在不同的上下文中重用一大块html,那么include标签就是你的朋友.