[Django] Tremlate: for-Schleife mind. einmal ausführen

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
sparrow
User
Beiträge: 4531
Registriert: Freitag 17. April 2009, 10:28

Hallo Forum,

gibt es eine einfache Möglichkeit eine for-Schleife mindestens einmal ausführen zu lassen?
Es gibt {% empty %}, das müsste nur dafür sorgen, dass die Schleife einmal durchlaufen wird.


Gruß
Sparrow
BlackJack

@sparrow: So ganz allgemein kann man da nur sagen, dass man halt dafür sorgen muss, dass in dem „Iterable” bei der ``for``-Schleife mindestens ein Objekt drin steckt.
Benutzeravatar
sparrow
User
Beiträge: 4531
Registriert: Freitag 17. April 2009, 10:28

Hmmm, bei verschachtelten Objekten müsste ich dann einmal ein komplettes Dummy-Objekt erzeugen.
Schade, ich dachte, dass es vielleicht eine einfache Möglichkeit gibt der Schleife einfach zu sagen: wenn das Objekt leer ist, dann lauf halt einmal durch.
Sirius3
User
Beiträge: 18255
Registriert: Sonntag 21. Oktober 2012, 17:20

und mit welchem Inhalt?
Listen sind ja normalerweise leer, weil es nichts zum Darstellen gibt.

Es gibt den default-Filter:

Code: Alles auswählen

{%for element in some_list|default:empty_list %}
Grüße
Sirius
Benutzeravatar
sparrow
User
Beiträge: 4531
Registriert: Freitag 17. April 2009, 10:28

@Sirius3

Danke! Genau das war es. Wenn man da per default irgend etwas Listenartiges übergibt, dann läuft die Schleife entsprechend oft.
Tatsächlich möchte ich nichts darstellen, es handelt sich um die Darstellung einer Tabelle. Es kann durchaus sein, dass die noch leer ist, deshalb soll aber trotzdem die erste Zeile da sein um etwas einzugeben.
Benutzeravatar
noisefloor
User
Beiträge: 4180
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

unabhängig von django hört sich das aber eher nach einem Fall für if-else an...

Gruß & Frohes Fest, noisefloor
Benutzeravatar
sparrow
User
Beiträge: 4531
Registriert: Freitag 17. April 2009, 10:28

An sich gebe ich dir recht.

In diesem Fall ist auf der Webseite eine Tabelle, in der man Daten eingeben kann. Das sind einfache input-Felder. Es können bereits Daten vorhanden sein, die dann vorbelegt werden. Wenn keine da sind, dann soll eine leere Zeile auftauchen. Ließ sich mit dem default prima umsetzen.
Antworten