Kyle
Kyle

Reputation: 4238

Django Custom Include Template

I know this isn't exactly Django templating philosophy, but i'd like to be able to include different templates depending on a list of plugins that I've specified in the http response context. For example, if I have the following plugins configured:

 context['plugins'] = ['weather']

I attempt to include each template in the base template file:

{% for custom_plugin in custom_plugins %}
    {% include "map/plugins/custom/{{ plugin }}/includes.html" %}
{% endfor %}

I've also tried:

{% for plugin in plugins %}
    @register.inclusion_tag("map/plugins/custom/{{ plugin }}/includes.html", takes_context=True)
{% endfor %}

For now the each plugin will only contain script references and css classes in their includes.html file:

<script type="text/javascript" src="{{ MEDIA_URL }}map/js/plugins/custom/weather/weatherStation.js?ver={{ version }}"></script>

Any suggestions?

Upvotes: 0

Views: 379

Answers (1)

Ben
Ben

Reputation: 6767

Your first way seems the best, and this answer might provide some pointers as to how you'd go about it: How to concatenate strings in django templates?

You basically want to build a string of the template to include in a variable with the with tag, then include it.

Upvotes: 1

Related Questions