Seite 1 von 1
Pfad zur Grafik
Verfasst: Mittwoch 8. Mai 2024, 12:20
von Pitwheazle
Ich habe in meiner app "core" im Ordner "templates/core" das template "grafik.html" von diesem aus, möchte ich eine Grafik aufrufen:
Code: Alles auswählen
{% load static %}
<img src="{% static {{parameter.object}} %}" height="200" width={{parameter.breite}} alt="Grafik">
die Grafik "skat.png" liegt in der app "core" im Ordner "static"
und den Pfad zur Grafik übergebe ich aus dem view mit:
Code: Alles auswählen
parameter = {'name': 'core/grafik.html', 'object': 'grafik/skat.png', 'breite': 400}
aber, wenn wundert es, das mit
geht natürlich nicht:
Code: Alles auswählen
Could not parse the remainder: '{{parameter.object}}' from '{{parameter.objekt}}'
Nachtrag:
mit den Anführungszeichen in
verschwindet die Fehlermeldung aber die Grafik wird immer noch nicht gefunden.
Mit
geht es aber.
Re: Pfad zur Grafik
Verfasst: Mittwoch 8. Mai 2024, 13:16
von Sirius3
Durch die geschweiften Klammern bist Du ja schon in der Template-Sprache von Django, weitere Klammern sind also überflüssig:
Re: Pfad zur Grafik
Verfasst: Mittwoch 8. Mai 2024, 13:22
von __blackjack__
@Pitwheazle: Innerhalb von {% %} haben {{ }} keine besondere Bedeutung. Zwischen {% und %} ist man doch schon aus dem normalen Vorlagentext raus und in der Template-Sprache.
Mal zum Vergleich aus Deinem letzten Thema, da hast Du ja auch nicht so etwas hier versucht:
Code: Alles auswählen
{% for farbe, x, y in {{parameter.kugeln}} %}
<circle cx={{x}} cy={{y}} r=15 fill={{farbe}} stroke="black" />
{% endfor %}
Re: Pfad zur Grafik
Verfasst: Mittwoch 8. Mai 2024, 13:23
von sparrow
Und: der static-Ordner in einem Projekt oder einer App ist in der Regel der Startpunkt für den Start. Das kannst du auch in deinen anderen Apps gegenprüfen.
Wenn also etwas in derm Verzeichnis /core/static liegt, dann ist die URL nicht /static/core sondern /static.
Du schriebst: die Grafik "skat.png" liegt in der app "core" im Ordner "static"
Also /core/static/skat.png
WIe kommst du darauf, dass dort irgendwo ein Verzeichnis "grafik" gibt?
Wenn deine Beschreibung richtig ist, ist es einfach nur 'skat.png' in static.
Re: Pfad zur Grafik
Verfasst: Mittwoch 8. Mai 2024, 14:41
von Pitwheazle
Ach wenn ich euch nicht hätte!
Es ist schon so, dass ich auch immer wieder Fortschritte mache - und dann halt wieder einen Teil vergesse

.
Danke!
Und was ist jetzt der Unterschied zwischen {% %} und {{ }}?
Re: Pfad zur Grafik
Verfasst: Mittwoch 8. Mai 2024, 15:49
von __blackjack__
Der Unterschied wird auf der ersten Seite der Template-Dokumentation beschrieben. Und ist doch auch irgendwie offensichtlich wenn man sich Templates mal anschaut: {{ }} ist zum Einsetzen von Variablen und {% %} ist für beliebige Logik in Form von Tags.
Die Doku ist an der Stelle absichtlich vage, weil man sich neben den vorhandenen Tags auch selbst welche dazu programmieren kann. {{ endfor }} setzt den Wert von der Variablen `endfor` in das Template ein, während {% endfor %} das Ende einer Schleife kennzeichnet die mit dem ``for``-Tag eingeleitet wird. Das muss man ja irgendwie auseinander halten können. Und Tag-Konstrukte bestehen wie im ``for``-Beispiel manchmal auch aus mehreren Tags um einen Anfang und ein Ende zu kennzeichnen, wo beliebiger Template-Inhalt dazwischen stehen kann. Beispielsweise bei Schleifen oder bedingten Template-Teilen (``if``/``else``/``endif``).