4

Is there any problem with the syntax in the following code, there is a error as Invalid block tag: 'else'

{% ifequal chat_profile 1 %}
    {% extends "chatprofile/chat_profile1.html" %}
{% else %}
    {% extends "chatprofile/chat_profile.html" %}
{% endifequal %}
Tom
  • 42,844
  • 35
  • 95
  • 101
Rajeev
  • 44,985
  • 76
  • 186
  • 285

2 Answers2

6

True, you must use extends as the first tag, but you can also pass it a variable instead of a fixed string:

{% extends base %}

Then you can include a context variable named base with the name of the template to inherit from, e.g.:

    return render_to_response('my_template.html',
                          { 'base': 'chatprofile/chat_profile1.html' })
Carles Barrobés
  • 11,608
  • 5
  • 46
  • 60
4

The documentation states:

If you use {% extends %} in a template, it must be the first template tag in that template. Template inheritance won't work, otherwise.

So consider using a design where you can use {% include %} instead.

Klaus Byskov Pedersen
  • 117,245
  • 29
  • 183
  • 222