Referenz zur bedingten Logik für Vorlagen
Übersicht
Erfahre mehr über alle verfügbaren Bedingungen, mit denen du einen Block, Abschnitt oder ein benutzerdefiniertes Code-Element dynamisch nur bestimmten Empfänger*innen anzeigen kannst. Um zu erfahren, wie du diese Bedingungen in deinen Vorlagen verwendest, lies unseren Artikel darüber, wie du Vorlageblöcke basierend auf dynamischen Variablen ein- oder ausblendest.
Erfahre, wie du bedingte Logik verwendest:
- Wo du Bedingungen verwenden kannst
- Tipps für den Erfolg
- Bedingungsstrukturen
- Erstelle komplexe Bedingungen
Wo du Bedingungen verwenden kannst
Du kannst Bedingungen verwenden in:
- E-Mails
- Erstelle Logik zum Ein- und Ausblenden, um Blöcke oder Abschnitte nur bestimmten Personen anzuzeigen.
- Wenn du lieber keinen Code schreiben möchtest, verwende stattdessen den Logik-Builder zum Ein-/Ausblenden.
- Schreibe if/else-Bedingungen, um benutzerdefinierte Django-Anweisungen zu erstellen.
- Erstelle Logik zum Ein- und Ausblenden, um Blöcke oder Abschnitte nur bestimmten Personen anzuzeigen.
- Customer Hub
- Schreibe if/else-Bedingungen, um in Inhaltsblöcken benutzerdefinierte Django-Anweisungen zu erstellen
Tipps für den Erfolg
Wenn du Bedingungen zum Ein- oder Ausblenden erstellst, achte auf die Details. Bedingungen zum Ein-/Ausblenden berücksichtigen die Groß- und Kleinschreibung, und die Schreibweise muss exakt mit deinen Profil- oder Ereignisdaten übereinstimmen.
Achte außerdem darauf, alle potenziellen Viewer*innen zu berücksichtigen. Wenn du zum Beispiel einen bestimmten Block nur Einwohner*innen eines bestimmten Bundesstaats zeigst, decke alle möglichen Schreibweisen des Bundesstaatsnamens ab (z. B. Massachusetts, massachusetts, mass, MA). Berücksichtige außerdem Profile, bei denen die Eigenschaft möglicherweise gar nicht festgelegt ist.
Nachdem du die Nachricht erstellt und deine Bedingungen angewendet hast, sieh dir über Vorschau mithilfe verschiedener Profile eine Vorschau an, um zu bestätigen, dass die Nachricht in allen Szenarien wie beabsichtigt angezeigt wird.
Bedingungsstrukturen
Bedingungen sollten je nach deinem Ziel für den Block und den Daten, die du verwendest, 1–3 Elemente enthalten. Die Bedingung muss mindestens eine Variable enthalten (z. B. person|lookup:'Favorite Color'). Sie kann auch eine Vergleichsfunktion wie = (gleich) oder > (größer als) und einen Wert enthalten, der angibt, nach welchem Eigenschaftswert gesucht werden soll. Außerdem beginnen bestimmte Bedingungen mit not, wenn du möchtest, dass der Block nur für Profile angezeigt wird, die eine Bedingung nicht erfüllen.
Die folgende Tabelle enthält eine vollständige Liste möglicher Strukturen, denen eine Ein-/Ausblenden-Bedingung folgen kann.
Beispielbedingung | Block anzeigen, wenn ... | Zulässige Datentypen |
person|lookup:'Lieblingsfarbe' | Die Eigenschaft | Beliebig |
nicht Person|lookup:'Lieblingsfarbe' | Die Eigenschaft | Beliebig |
person|lookup:'Favorite Color' == 'green' | Die Eigenschaft | Text, Nummer |
person|lookup:'Lieblingsfarbe' != 'grün' | Die Eigenschaft | Text, Nummer |
person|lookup:'Alter' > 20 | Die Eigenschaft | Zahl |
person|lookup:'Alter' >= 20 | Die Eigenschaft | Zahl |
person|lookup:'Alter' < 20 | Die Eigenschaft | Zahl |
person|lookup:'Alter' <= 20 | Die Eigenschaft | Zahl |
‚green‘ in Person|lookup:‚Favorite Colors‘ | Die Eigenschaft Die Eigenschaft | Liste, Text |
nicht „grün“ persönlich|lookup:'Lieblingsfarben' | Die Eigenschaft Die Eigenschaft | Liste, Text |
Bedingungen für Boolesche Werte
Wenn du auf Daten verweist, die als Boolean im Datenspeicher gespeichert sind, musst du in der Definition deiner Ein-/Ausblenden-Bedingung 1 und 0 statt „true“ und „false“ verwenden. Setze 1 oder 0 nicht in Anführungszeichen. Verwende die untenstehenden Beispielbedingungen als Vorlage.
Beispielbedingung | Block anzeigen, wenn ... |
person|lookup:'VIP' == 1 | Die Eigenschaft |
person|lookup:'VIP' == 0 | Die Eigenschaft |
Bedingungen für Booleans, die als Text gespeichert sind
Wenn deine Wahr/Falsch-Daten als Text und nicht als Boolean gespeichert sind, verwende die Beispielbedingungen für Texteigenschaften oben. Wenn du dir nicht sicher bist oder wenn du dich auf eine Eigenschaft beziehst, die sowohl Booleans als auch Text enthält, kannst du diese Strukturen verwenden, um alle Szenarien abzudecken. Schließe alle Schreibweisen und Groß-/Kleinschreibungen ein, die in deinen Daten vorhanden sind.
Beispielbedingung | Block anzeigen, wenn ... |
person|lookup:'VIP' == 1 or person|lookup:'VIP' == 'true' or person|lookup:'VIP' == 'True' | Die Eigenschaft |
person|lookup:'VIP' == 0 or person|lookup:'VIP' == 'false' or person|lookup:'VIP' == 'False' | Die Eigenschaft |
Erstelle komplexe Bedingungen
Wenn der Block für Personen angezeigt werden soll, die mehrere Kriterien erfüllen, oder wenn ein komplexer Anwendungsfall vorliegt, können mehrere Ein-/Ausblendbedingungen für einen Block verwendet werden. Dazu eine Reihe von Bedingungen mit UND oder ODER verbinden. Wenn beispielsweise ein Block für alle in Massachusetts angezeigt werden soll, Massachusetts aber in einigen Profilen anders geschrieben ist, kann eine Bedingung wie diese verwendet werden:
person.location.region == 'Massachusetts' or person.location.region == 'massachusetts' or person.location.region == 'mass' or person.location.region == 'MA'
Wenn du einen Block nur Personen anzeigen möchtest, deren Lieblingsfarbe Grün ist und die außerdem VIPs sind, kannst du eine Bedingung wie diese verwenden:
person|lookup:'Favorite Color' == 'green' and person|lookup:'VIP'== 1
Bedingte Anweisungen und der Inline-Texteditor
Wenn du bestimmte bedingte Anweisungen zu einem Textblock hinzufügst, werden diese möglicherweise im Inline-Texteditor nicht mehr angezeigt. Der Code ist jedoch immer noch vorhanden, er wird nur versteckt. Um bedingte Anweisungen anzuzeigen und zu bearbeiten, verwende den Django Tag Builder oder verschiebe den Inhalt in einen dedizierten HTML-Block, um den Code direkt zu bearbeiten.
Die folgenden Tags werden nicht im Inline-Texteditor angezeigt, bleiben aber im Textblock erhalten:
- {% for ... %}
- {% endfor %}
- {% if ... %}
- {% elif ... %}
- {% else %}
- {% endif %}
- {% with ... %}
- {% endwith %}