Częściowe szablony
Część sekcji API JSON ścieżki Django w Coddy. Lekcja 14 z 19.
Skrypt nie zawsze potrzebuje JSON. Po dodaniu zadania może poprosić serwer o gotowy element <li> tego zadania i dodać go do listy. Szablon już wyświetla ten wiersz, więc serwer powinien użyć go ponownie.
Django 6.0 wprowadziło części szablonu: nazwany fragment szablonu, który można też renderować samodzielnie. Owiń go w {% partialdef %}; inline wyświetla go również w tym miejscu, przy każdym przebiegu pętli. Widok renderuje tylko fragment, podając nazwę szablonu, # i nazwę części:
{% partialdef cart-total inline %}
<strong>{{ cart.total }}</strong>
{% endpartialdef %}return render(request, "shop/cart.html#cart-total", {"cart": cart})Kontekst musi zawierać to, co odczytuje fragment — tutaj cart. Strona i fragment korzystają z tego samego znaczników, więc nie mogą się od siebie różnić.
Wyzwanie
ŚredniWyświetl jeden wiersz z /tasks/ osobno:
- W pliku
list.htmlutwórz z elementu<li>fragment o nazwietask-row, który nadal będzie renderowany dla każdego zadania. - Utwórz widok
task_row(request, pk), który renderuje tylko ten fragment i zwraca błąd 404, gdy zadanie nie istnieje. - Dodaj trasę
"tasks/<int:pk>/row/"o nazwietask_row.
Naciśnij Uruchom, a następnie otwórz /tasks/1/row/: zobaczysz jeden wiersz.
Spróbuj swoich sił
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>All tasks</title>
</head>
<body>
<h1>All tasks</h1>
<ul id="tasks">
{% for task in tasks %}
<li id="task-{{ task.id }}">{{ task.title }}{% if task.done %} (done){% endif %}</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 API JSON
2Odczytywanie żądań
Filtrowanie za pomocą zapytaniaTworzenie za pomocą POST5Projekt: Porządkowanie zadań
Projekt: PriorytetyProjekt: Usuwanie ukończonych zadańPoćwicz samodzielnie: Edytor online Django