Filtres de modèle
Fait partie de la section Les bases de Django du Journey Django de Coddy. Leçon 15 sur 23.
La liste des boissons devrait indiquer combien il y en a et afficher les prix comme $3.50, mais {{ drink.price }} affiche 3.5. Un filtre modifie une valeur au moment où le modèle l’affiche. Il est placé après un |, et certains filtres prennent un argument après deux-points :
{{ guest.name|upper }} {# ADA #}
{{ rating|floatformat:1 }} {# 4.7, when rating is 4.66 #}
{{ boxes|length }} box{{ boxes|pluralize:"es" }}{# ... #} est un commentaire de modèle, il n’est jamais affiché. L’argument de floatformat indique le nombre de décimales toujours affichées. length compte les éléments d’une liste, et pluralize ajoute une terminaison, s sauf si tu en indiques une autre, lorsque le nombre n’est pas exactement égal à un : 3 boxes, 1 box.Les filtres modifient uniquement ce qui est affiché, jamais les données dans ta vue.
Défi
FacileDans drinks.html :
- sous le
<h1>, un<p class="count">qui indique4 drinks, ou1 drinklorsqu’il n’y en a qu’un ; - dans le
<li>de chaque boisson, après le nom, un<span class="price">avec deux décimales :$3.50.
Cliquez sur Exécuter et consultez /drinks/.
Essayez vous-même
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Our Drinks</title>
</head>
<body>
<h1>Our Drinks</h1>
<ul>
{% for drink in drinks %}
<li class="drink">
{{ drink.name }}
{% if drink.sold_out %}
<span class="sold-out">Sold out</span>
{% endif %}
</li>
{% empty %}
<li>No drinks today.</li>
{% endfor %}
</ul>
</body>
</html>
Toutes les leçons de Les bases de Django
1Votre premier site Django
Bonjour, DjangoUne deuxième page4Mises en page et fichiers statiques
Héritage des templatesUn titre pour chaque pageEntraînez-vous par vous-même : Playground Django