Django - nadia2603/stage-maykin GitHub Wiki

Built-in template tags and filters

autoescape

Regelt het huidige automatische ontsnappingsgedrag. Hij accepteert on en off als argument en bepaaltr welke escape binnen het blok van kracht is. Een blok afsluiten doe je met endautoescape.

{% autoescape on %}
  {{ body }}
{% endautoescape %}

wanneer autoescape is ingeschakeld, wordt alle inhoud die is afgeleid van variabelen voorzien van HTML-escape tekens voordat het resultaat in de invoer wordt geplaatst.

de enige uitzondering zijn variabelen die al gemarkeerd zijn als safe en dus niet ontsnapt. om die variabelen als safe te zetten worden door de code die de variabelen heeft gevuld, door het toepassen van de safe of escape filters of omdat het resultaat is van een eerdere filter die hem al als safe heeft gezet.

{% autoescape off %}
  {{ my_list|join:", "|escape }}
{% endautoescape %}

in de code boven zal de samengevoegde elementen van my-list niet geëscapteerde tekens uitvoeren. Dit komt doordat de filterteken eerst wordt uitgevoerd met join op my-list, waardoor die als safe wordt beschouwd. vervolgens wordt het resultaat doorgegeven aan de escape dat geen tweede ronde toepast.

{% autoescape off %}
  {{ my_list|escapeseq|join:", " }}
{% endautoescape %}

Om het wel correct te escapen moet je escapeseq gebruiken.

Comment

Negeert alles tussen {% comment %} en {% endcomment %}. Een optionele notitie kan in de eerste dag worden toegevoegd.

<p>Rendered text with {{ pub_date|date:"c" }}</p>

{% comment "Optional note" %}
  <p>Commented out text with {{ create_date|date:"c" }}</p>
{% endcomment %}

Cycle

Genereert telkens een van zijn argumenten wanneer hij wordt aangetroffen. Het eerste argument wordt gegenereerd bij de eerste keer dat de tag wordt aangetroffen, het tweede argument bij de tweede keer, enzovoort. Zodra alle argumenten zijn gebruikt, keert de tag terug naar het eerste argument en genereert dit opnieuw.

{% for o in some_list %}
  <tr class="{% cycle 'row1' 'row2' %}">
    ...
  </tr>
{% endfor %}
class="{% cycle rowvalue1 rowvalue2 %}"

Dit is als je variabelen gebruikt.

class="{% autoescape off %}{% cycle rowvalue1 rowvalue2 %}{% endautoescape %}"

Variabelen die in de lus voorkomen worden automatische escape en zo kan je dat uitstakelen.

class="{% cycle 'row1' rowvalue2 'row3' %}"

Je kan ook variabelen en tekenreeksen combineren.

{% cycle 'row1' 'row2' as rowcolors %}

Als je door wil verwijzen naa de huideige waarde van een cyclus zonder naar de volgende waarde te gaan dan moet je dat zo doen.

<tr>
  <td class="{% cycle 'row1' 'row2' as rowcolors %}">...</td>
  <td class="{{ rowcolors }}">...</td>
</tr>

<tr>
  <td class="{% cycle rowcolors %}">...</td>
  <td class="{{ rowcolors }}">...</td>
</tr>

Zo ziet dat er dan uit. De eerste td hebben de class row1 en de onderste td hebben de class row2.

{% cycle 'row1' 'row2' as rowcolors silent %}

Standaard zal het gebruik van het trefwoord as in combinatie met de cycle ervoor zorgen dat de cyclus zelf de eerste waarde genereert. Dit kan een probleem geven als je de waarde in een geneste lus of opgenomen sjablomen wilt gebruiken. Als je alleen de eerste cyclus wil laten zien en niet de eerste waarde wilt genereren. Je kan dan dan aan de laaste terfwoord silent toevoegen.

Wanneer je silent gebruikt wordt in een cyclusdefinitie en wordt die automatische toegepast op alle volgende keren dat die specifieke cyclustag wordt gebruikt.

Je kan een resetcycle gebruiken om ervoor te zorgen dat een tag opnieuw begint bij de eerste waarde deze de volgende keer wordt aangetroffen.

Extends

Deze tag kan op 2 manieren gebruikt worden. {% extends "base.html" %} (tussen aanhalingstekens) gebruikt de letterlijke waarde "base.html"als de naam van de bovenliggende sjabloon die moet worden uitgebreid. {% extends variable %} gebruikt de waarde van variable. Als de variabele een tekenreeks oplevert, gebruikt Django die tekenreeks als de naam van de bovenliggende sjabloon. Als de variabele een Template object oplevert, gebruikt Django dat object als de bovenliggende sjabloon.

Filter

Als je meerdere filters wilt opgeven kan je dat doen met |. Filters kunnen argumenten hebben.

{% filter force_escape|lower %}
  This text will be HTML-escaped, and will appear in all lowercase.
{% endfilter %}

Firstof

{% firstof var1 var2 var3 %}

dit is gelijk aan.

aan dit.

{% if var1 %}
  {{ var1 }}
{% elif var2 %}
  {{ var2 }}
{% elif var3 %}
  {{ var3 }}
{% endif %}
⚠️ **GitHub.com Fallback** ⚠️