我试图在django中实现以下功能,概念上很好,但是,django模板语言不允许这样做,因为"扩展" templatetag必须在第一行。
{% if some condition %}
{% extends "parent_template.html "%}
{% else %}
{% extends "another_parent_template.html "%}
{% endif %}
对此有任何解决方法吗?90%的继承和未经授权的模板保持不变,为此设置两个不同的模板毫无价值。
答案 0 :(得分:1)
我认为没有解决方法。但更大的答案是你应该考虑以不同的方式设计你的模板。
如果90%的内容来自parent_template.html
,那么扩展该模板不应该是有条件的。一直这样做。如果没有,那么考虑这样设计:
some_condition
。如果是真的:
B_some_condition
,其范围为parent_template.html
。B_else
,它不会扩展任何内容。通过这种方式,您可以将条件放在使用该模板(A)的任何内容中,而不是将条件放在子模板中,并使条件成为“扩展”。