Hallo,
kann mir jemand sagen, ob es möglich ist innerhalb eines Django templates zwei strings zusammenzufügen und das Ergebnis dann mittels {% ifequal a b%} zu vergleichen (wobei b der zusammengesetzte string sein soll)?
Danke,
lunas
PS: Achja, wenn es möglich ist, dann wäre auch die Angabe eines kleinen Beispiels hilfreich...
Strings verknüpfen in Django template Sprache
Hi,lunas hat geschrieben:PS: Achja, wenn es möglich ist, dann wäre auch die Angabe eines kleinen Beispiels hilfreich...
vielleicht wäre eine kleines Beispiel deinerseits ganz hilfreich, ich verstehe dein Problem nicht wirklich.
Ich sehe es grade so, das du eine Variable mit einer anderen Variablen vergleichen willst, oder eine Variable mit einem festen String.
Im ersten Fall könntest du ja einfach eine weitere Variable mit übergeben, die den zusammen gesetzten String enthält, im zweiten Fall wäre die Frage überflüssig.
Also, ich habe das Gefühl das ich dich nicht ganz verstanden habe, und bitte um Erläuterung...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Nein, du kannst in den Templates keine Variablen wie ``b`` setzen. Soetwas ist auch eher Teil der Logik und nicht der Darstellung und hat im Template wenig zu suchen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Naja, das ist Ansichtssache. Übergibt man nun lieber die Rohdaten und lässt das Template sich um die Präsentation kümmern oder bereitet man schon alles in der Logik vor und nutzt das Templatesystem nur zur stupiden Substitution der Variablen... Ich präferiere da den ersten Weg (was der ein oder andere ja durchaus anders sehen kann und wird).Leonidas hat geschrieben:Nein, du kannst in den Templates keine Variablen wie ``b`` setzen. Soetwas ist auch eher Teil der Logik und nicht der Darstellung und hat im Template wenig zu suchen.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Du kannst dir ja ein ifequal-Tag schreiben, dass drei Argumente nimmt und die letzten beiden Verkettet und dann mit dem ersten vergleich.
Bin ich froh, dass ich das Ding hinter mir gelassen habe
Bin ich froh, dass ich das Ding hinter mir gelassen habe

My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Warum kannst du in der View-Funktion nicht einfach eine weitere Variable mit dem auszurechnenden Ausdruck anlegen und dem Template übergeben?lunas hat geschrieben:Trotzdem danke. Dann muss ich mir wohl etwas anderes überlegen.
Alternativ musst du dir ein eigenes Template-Tag (wie schon andere vorgeschlagen haben) bauen, was aber IMHO bei Django unnötig schwer ist oder eine Filter-Funktion bauen, mit der du dann etwas wie a|plus:b ausdrücken kannst. Schließlich könntest du noch ein anderes Template-Rahmenwerk benutzen. Jinja2 ist sehr ähnlich zu Djangos Templates und erlaubt "echte" if-Statements. Alternative hierzu wäre Mako, welches auch der Philosophie folgt, dem Benutzer alle Möglichkeiten von Python zu ermöglichen und ihn nicht in einer Sandbox einschließt. Die Template-Engine ist noch das, was sich bei Django am einfachsten austauschen lässt.
Stefan