Łącza między stronami
Część sekcji Podstawy Django ścieżki Django w Coddy. Lekcja 16 z 23.
Każdy napój ma własną stronę pod adresem /drinks/<slug>/, a lista pod adresem /drinks/ powinna do nich prowadzić. W szablonie tag {% url %} tworzy adres na podstawie nazwy trasy, tak jak robi to reverse() w widoku:
<a href="{% url 'menu:about' %}">About us</a>
<a href="{% url 'menu:table' 7 %}">Table 7</a>Najpierw podaje się nazwę w cudzysłowie wraz z przestrzenią nazw. Następnie, oddzielone spacjami, podaje się wartości konwerterów; mogą to być zmienne: w pętli {% url 'menu:table' table.number %} tworzy adres każdej tabeli. Każdy napój w DRINKS ma teraz własny slug.
Błędna nazwa lub wartość powoduje błąd NoReverseMatch, więc uszkodzony link ujawni się podczas tworzenia strony, a nie dopiero po kliknięciu go przez odwiedzającego.
Wyzwanie
ŁatwyW pliku drinks.html ustaw nazwę każdego napoju jako link do jego strony: <a href="...">Latte</a> prowadzi do /drinks/latte/. Zbuduj adres za pomocą {% url %} i slug napoju.
Naciśnij Uruchom i kliknij Flat White na stronie /drinks/.
Spróbuj swoich sił
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Our Drinks</title>
</head>
<body>
<h1>Our Drinks</h1>
<p class="count">{{ drinks|length }} drink{{ drinks|pluralize }}</p>
<ul>
{% for drink in drinks %}
<li class="drink">
{{ drink.name }}
<span class="price">${{ drink.price|floatformat:2 }}</span>
{% if drink.sold_out %}
<span class="sold-out">Sold out</span>
{% endif %}
</li>
{% empty %}
<li>No drinks today.</li>
{% endfor %}
</ul>
</body>
</html>
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy Django
4Układy i pliki statyczne
Dziedziczenie szablonówTytuł dla każdej strony3Szablony
Twój pierwszy szablonZmienne w szablonachPoćwicz samodzielnie: Edytor online Django