Aangepaste Django-sjabloon

Ik weet dat dit niet precies de filosofie van Django is, maar ik zou graag verschillende sjablonen kunnen gebruiken, afhankelijk van een lijst met plug-ins die ik heb opgegeven in de http-antwoordcontext. Als ik bijvoorbeeld de volgende plug-ins heb geconfigureerd:

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

Ik probeer elke sjabloon in het basissjabloonbestand op te nemen:

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

Ik heb ook geprobeerd:

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

Voor nu bevat de plug-in alleen scriptverwijzingen en css-klassen in hun includes.html-bestand:

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

Suggesties?

0
Als u tag of variabele syntaxis binnen gebruikt, is een tag nooit correct.
toegevoegd de auteur Daniel Roseman, de bron

1 antwoord

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?

U wilt in principe een tekenreeks van de sjabloon maken om op te nemen in een variabele met de met-tag en deze vervolgens opnemen.

1
toegevoegd
gracias! eenvoudige oplossing, niet zeker hoe ik dit over het hoofd zag. Bedankt Ben.
toegevoegd de auteur Kyle, de bron