Home > OS >  {% block contents %} conditional on a variable Django template inheritance
{% block contents %} conditional on a variable Django template inheritance

Time:03-27

I am using Django's template inheritance from a base file called base.html.

All of my apps, except one, require that {% block contents %} {% endblock %} is present in that file, which is problematic.

I am trying to find away to make the inclusion {% block contents %} {% endblock %} conditional on a variable.

What I have so far tried in base.html:

    {% if some_variable %}
        {% block contents %} {% endblock %} 
    {% endif %}

But that doesn't seem to work.

I have also tried:

    {% if some_variable %}
        {% with 'base_block_content.html' as path %}
             {% include path %}
        {% endwith %}
    {% endif %}

base_block_content.html being simply:

''' {% block contents %} {% endblock %} '''

But that doesn't work either.

My only other option is to write a completely separate base.html for the one app, which doesn't quite fit in with the 'DRY' concept.

Can anyone suggest a way of doing this?

CodePudding user response:

{% block dynamic-block %}
{% if some_variable %}
   {% include 'path/index.html' %}
{% endif %}
{% endblock dynamic-lock %}
  • Related