0

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?

Kyle
  • 4,202
  • 1
  • 33
  • 41

1 Answers1

1

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.

Community
  • 1
  • 1
Ben
  • 6,687
  • 2
  • 33
  • 46