Django模板语法错误

时间:2010-10-25 11:37:45

标签: django django-models django-templates django-views

以下代码中的语法是否有任何问题,有错误 Invalid block tag: 'else'

{% ifequal chat_profile 1 %}
    {% extends "chatprofile/chat_profile1.html" %}
{% else %}
    {% extends "chatprofile/chat_profile.html" %}
{% endifequal %}

2 个答案:

答案 0 :(得分:6)

是的,您必须使用extends作为第一个标记,但您也可以将其作为变量而不是固定字符串传递:

{% extends base %}

然后,您可以包含一个名为base的上下文变量,其中包含要继承的模板的名称,例如:

    return render_to_response('my_template.html',
                          { 'base': 'chatprofile/chat_profile1.html' })

答案 1 :(得分:4)

The documentation州:

  

如果在模板中使用{%extends%},则它必须是该模板中的第一个模板标记。否则,模板继承将不起作用。

因此,请考虑使用可以使用{% include %}的设计。