verscheidene svg mit include einfügen

Django, Flask, Bottle, WSGI, CGI…
Antworten
Pitwheazle
User
Beiträge: 873
Registriert: Sonntag 19. September 2021, 09:40

Hallo Leute,
Hilfen zu meinem Projekt suche ich normalerweise unter viewtopic.php?t=53873

Jetzt habe ich aber etwas nicht so spezifisches:

Für meinen "Rechentrainer" (siehe oben) muss ich viele, sehr unterschiedliche Grafiken einbinden. Diese erstelle ich mit svg und binde sie mit

Code: Alles auswählen

 {% if grafik.name %}
        {% if "zahlenstrahl" in grafik.name %}
            {% include "svg/zahlenstrahl.svg" %} 
        {% elif "parallele" in grafik.name %}
            {% include "svg/parallele.svg" %} 
        {% elif "geometrie" in grafik.name %}
            {% include "svg/geometrie.svg" %}                   
        {% endif %}
    {% endif %}
in mein Template ein. Es werden aber sehr viele Grafiken werden und ich hätte das gerne kürzer - da kommen noch viele svg Dateien dazu und die Liste wird wohl ziemlich lang werden.
Geht das nicht einfacher mit

Code: Alles auswählen

 {% include "svg/{%grafik.name%}" %}.svg 
... oder so?
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

das steht doch sogar explizit in der Django-Doku, wie das geht: https://docs.djangoproject.com/en/4.0/r ... s/#include

Warum bindest du die SVG-Dateien nicht über das HTML img-Tag ein?

Gruß, noisefloor
Pitwheazle
User
Beiträge: 873
Registriert: Sonntag 19. September 2021, 09:40

Das habe ich sogar mal gelesen. Anscheinend begreife ich es aber nicht. Wahrscheinlich liegt es am Ordner und der Endung, von denen ich nicht weiß, wie ich sie übergebe. Es wäre schön, wenn du mir da auf die Sprünge helfen könntest.
Also der Code

Code: Alles auswählen

{% include "svg/zahlenstrahl.svg" %} 
ruft die richtige Datei auf. Diese ist im Template Ordner im Unterordner svg. In grafik.name steht "zahlenstrahl". Wahrscheinlich klappt das bei mir nicht, weil ich nicht weiß, wie ich das "svg/" am Anfang und das ".svg" am Ende zu "grafik.name" dazufüge.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

was spricht denn dagegen, „svg/irgendwas.svg“ der include-Direktive als Variable mitzugeben, anstatt diese in include erst zusammenzubauen? Wenn Verzeichnis und. Dateisuffix hardcoded im Quellcode sind, dann ist es doch egal, wo das steht.

Gruß, noisefloor
Antworten