2014-05-14 43 views
1

我想在django中实现以下,概念上是好的,但是,django模板语言不允许这样做,因为“扩展”模板标签必须位于第一行。如何在django中继承模板,如果满足某些条件?

{% if some condition %} 
    {% extends "parent_template.html "%} 
{% else %} 
    {% extends "another_parent_template.html "%} 
{% endif %} 

任何办法解决这个?,90%的继承和uniherited themplate的是一样的,它是毫无价值有此两种不同的模板。

+1

你能做'{%extends parent_passed_in_variable%}'吗?我不知道它是否会接受或不...只是一个想法 –

回答

1

我不认为这有一个解决方法。但更大的答案是,你应该考虑以不同的方式设计你的模板。

如果确实90%的内容来自parent_template.html,那么扩展该模板不应该是有条件的。一直这样做。如果不是,那么考虑这样设计:

  • 模板A检查some_condition。如果为真:
    • A包括模板B_some_condition,其范围从parent_template.html延伸。
  • 如果是假,
    • 一个包括模板B_else,不延伸任何东西。

通过这种方式,而不是把有条件的子模板,并使得“伸出”的条件,你把条件中无论是使用该模板(A)。

相关问题